sagemath: update to 10.0.
Also: - support networkx 3.1 (sagemath#35584) - support linbox 1.7.0 (sagemath#35612) - support maxima 5.46.0 (sagemath#35619) - support sympy 1.12 (sagemath#35635)
This commit is contained in:
parent
1afb8ba215
commit
faa5bf4b2a
@ -1,4 +1,3 @@
|
||||
# configuration for sage on void linux
|
||||
SAGE_SHARE = "/usr/share/sagemath"
|
||||
GAP_SHARE_DIR = "/usr/share/gap"
|
||||
GAP_LIB_DIR = "/usr/lib/gap"
|
||||
|
@ -1,281 +1,152 @@
|
||||
{
|
||||
"doc.ca.intro.index": {"walltime": 8},
|
||||
"doc.en.constructions.calculus": {"walltime": 64},
|
||||
"doc.en.constructions.plotting": {"walltime": 32},
|
||||
"doc.en.prep.Advanced-2DPlotting": {"walltime": 16},
|
||||
"doc.en.prep.Calculus": {"walltime": 8},
|
||||
"doc.en.prep.Symbolics-and-Basic-Plotting": {"walltime": 8},
|
||||
"doc.en.thematic_tutorials.explicit_methods_in_number_theory.birds_other": {"walltime": 8},
|
||||
"doc.en.thematic_tutorials.explicit_methods_in_number_theory.elliptic_curves": {"walltime": 8},
|
||||
"doc.en.thematic_tutorials.geometry.polyhedra_tutorial": {"walltime": 16},
|
||||
"doc.en.thematic_tutorials.sandpile": {"walltime": 16},
|
||||
"doc.en.thematic_tutorials.vector_calculus.vector_calc_advanced": {"walltime": 32},
|
||||
"doc.en.thematic_tutorials.vector_calculus.vector_calc_cartesian": {"walltime": 32},
|
||||
"doc.en.thematic_tutorials.vector_calculus.vector_calc_change": {"walltime": 32},
|
||||
"doc.en.thematic_tutorials.vector_calculus.vector_calc_curvilinear": {"walltime": 32},
|
||||
"doc.en.thematic_tutorials.vector_calculus.vector_calc_plane": {"walltime": 16},
|
||||
"doc.ja.tutorial.tour_plotting": {"walltime": 8},
|
||||
"sage.algebras.cluster_algebra": {"walltime": 8},
|
||||
"sage.algebras.commutative_dga": {"walltime": 16},
|
||||
"sage.algebras.hecke_algebras.ariki_koike_algebra": {"walltime": 8},
|
||||
"sage.algebras.iwahori_hecke_algebra": {"walltime": 8},
|
||||
"sage.algebras.lie_algebras.classical_lie_algebra": {"walltime": 128},
|
||||
"sage.algebras.lie_algebras.nilpotent_lie_algebra": {"walltime": 16},
|
||||
"sage.algebras.quantum_clifford": {"walltime": 16},
|
||||
"sage.algebras.quantum_groups.fock_space": {"walltime": 8},
|
||||
"sage.algebras.quatalg.quaternion_algebra": {"walltime": 8},
|
||||
"sage.algebras.steenrod.steenrod_algebra": {"walltime": 64},
|
||||
"sage.algebras.steenrod.steenrod_algebra_bases": {"walltime": 8},
|
||||
"sage.algebras.yangian": {"walltime": 8},
|
||||
"sage.arith.misc": {"walltime": 32},
|
||||
"sage.algebras.fusion_rings.f_matrix": {"walltime": 16},
|
||||
"sage.algebras.fusion_rings.fusion_ring": {"walltime": 16},
|
||||
"sage.algebras.hecke_algebras.cubic_hecke_algebra": {"walltime": 8},
|
||||
"sage.algebras.lie_conformal_algebras.n2_lie_conformal_algebra": {"walltime": 8},
|
||||
"sage.algebras.quantum_clifford": {"walltime": 8},
|
||||
"sage.algebras.steenrod.steenrod_algebra": {"walltime": 8},
|
||||
"sage.calculus.calculus": {"walltime": 16},
|
||||
"sage.calculus.desolvers": {"walltime": 8},
|
||||
"sage.calculus.functional": {"walltime": 8},
|
||||
"sage.calculus.riemann": {"walltime": 64},
|
||||
"sage.calculus.tests": {"walltime": 16},
|
||||
"sage.calculus.transforms.dwt": {"walltime": 16},
|
||||
"sage.calculus.riemann": {"walltime": 8},
|
||||
"sage.calculus.transforms.fft": {"walltime": 8},
|
||||
"sage.categories.coxeter_groups": {"walltime": 8},
|
||||
"sage.categories.finite_monoids": {"walltime": 16},
|
||||
"sage.categories.lie_conformal_algebras": {"walltime": 8},
|
||||
"sage.categories.finite_monoids": {"walltime": 8},
|
||||
"sage.categories.loop_crystals": {"walltime": 8},
|
||||
"sage.categories.pushout": {"walltime": 8},
|
||||
"sage.categories.super_hopf_algebras_with_basis": {"walltime": 32},
|
||||
"sage.categories.super_lie_conformal_algebras": {"walltime": 8},
|
||||
"sage.coding.ag_code": {"walltime": 64},
|
||||
"sage.coding.ag_code_decoders": {"walltime": 128},
|
||||
"sage.coding.binary_code": {"walltime": 8},
|
||||
"sage.coding.linear_code": {"walltime": 16},
|
||||
"sage.combinat.backtrack": {"walltime": 32},
|
||||
"sage.combinat.chas.wqsym": {"walltime": 32},
|
||||
"sage.combinat.cluster_algebra_quiver.cluster_seed": {"walltime": 64},
|
||||
"sage.combinat.cluster_algebra_quiver.quiver": {"walltime": 128},
|
||||
"sage.combinat.crystals.affine_factorization": {"walltime": 16},
|
||||
"sage.combinat.crystals.alcove_path": {"walltime": 32},
|
||||
"sage.combinat.crystals.highest_weight_crystals": {"walltime": 8},
|
||||
"sage.combinat.crystals.kirillov_reshetikhin": {"walltime": 16},
|
||||
"sage.combinat.crystals.letters": {"walltime": 8},
|
||||
"sage.combinat.crystals.littelmann_path": {"walltime": 16},
|
||||
"sage.combinat.crystals.mv_polytopes": {"walltime": 16},
|
||||
"sage.combinat.crystals.pbw_crystal": {"walltime": 16},
|
||||
"sage.combinat.crystals.star_crystal": {"walltime": 8},
|
||||
"sage.combinat.designs.bibd": {"walltime": 8},
|
||||
"sage.combinat.designs.database": {"walltime": 16},
|
||||
"sage.coding.ag_code": {"walltime": 32},
|
||||
"sage.coding.ag_code_decoders": {"walltime": 32},
|
||||
"sage.coding.linear_code": {"walltime": 32},
|
||||
"sage.combinat.designs.database": {"walltime": 8},
|
||||
"sage.combinat.designs.difference_family": {"walltime": 8},
|
||||
"sage.combinat.designs.gen_quadrangles_with_spread": {"walltime": 128},
|
||||
"sage.combinat.designs.orthogonal_arrays_build_recursive": {"walltime": 16},
|
||||
"sage.combinat.designs.orthogonal_arrays_find_recursive": {"walltime": 8},
|
||||
"sage.combinat.diagram_algebras": {"walltime": 64},
|
||||
"sage.combinat.fqsym": {"walltime": 32},
|
||||
"sage.combinat.free_prelie_algebra": {"walltime": 8},
|
||||
"sage.combinat.fully_commutative_elements": {"walltime": 8},
|
||||
"sage.combinat.grossman_larson_algebras": {"walltime": 8},
|
||||
"sage.combinat.interval_posets": {"walltime": 8},
|
||||
"sage.combinat.designs.orthogonal_arrays_build_recursive": {"walltime": 8},
|
||||
"sage.combinat.k_regular_sequence": {"walltime": 8},
|
||||
"sage.combinat.k_tableau": {"walltime": 16},
|
||||
"sage.combinat.matrices.hadamard_matrix": {"walltime": 8},
|
||||
"sage.combinat.multiset_partition_into_sets_ordered": {"walltime": 8},
|
||||
"sage.combinat.ncsf_qsym.ncsf": {"walltime": 16},
|
||||
"sage.combinat.ncsf_qsym.qsym": {"walltime": 16},
|
||||
"sage.combinat.partition": {"walltime": 16},
|
||||
"sage.combinat.partition_kleshchev": {"walltime": 16},
|
||||
"sage.combinat.ncsf_qsym.ncsf": {"walltime": 8},
|
||||
"sage.combinat.ncsf_qsym.qsym": {"walltime": 8},
|
||||
"sage.combinat.partition": {"walltime": 8},
|
||||
"sage.combinat.partition_tuple": {"walltime": 8},
|
||||
"sage.combinat.posets.moebius_algebra": {"walltime": 16},
|
||||
"sage.combinat.permutation": {"walltime": 8},
|
||||
"sage.combinat.posets.posets": {"walltime": 8},
|
||||
"sage.combinat.rigged_configurations.kr_tableaux": {"walltime": 32},
|
||||
"sage.combinat.rigged_configurations.rigged_configurations": {"walltime": 16},
|
||||
"sage.combinat.rigged_configurations.tensor_product_kr_tableaux": {"walltime": 16},
|
||||
"sage.combinat.rigged_configurations.kr_tableaux": {"walltime": 8},
|
||||
"sage.combinat.root_system.associahedron": {"walltime": 8},
|
||||
"sage.combinat.root_system.branching_rules": {"walltime": 8},
|
||||
"sage.combinat.root_system.fusion_ring": {"walltime": 8},
|
||||
"sage.combinat.root_system.integrable_representations": {"walltime": 16},
|
||||
"sage.combinat.root_system.non_symmetric_macdonald_polynomials": {"walltime": 16},
|
||||
"sage.combinat.root_system.pieri_factors": {"walltime": 8},
|
||||
"sage.combinat.root_system.plot": {"walltime": 32},
|
||||
"sage.combinat.root_system.root_lattice_realization_algebras": {"walltime": 16},
|
||||
"sage.combinat.root_system.root_lattice_realizations": {"walltime": 16},
|
||||
"sage.combinat.root_system.root_system": {"walltime": 8},
|
||||
"sage.combinat.root_system.weyl_group": {"walltime": 8},
|
||||
"sage.combinat.rsk": {"walltime": 32},
|
||||
"sage.combinat.sf.classical": {"walltime": 16},
|
||||
"sage.combinat.sf.jack": {"walltime": 16},
|
||||
"sage.combinat.sf.k_dual": {"walltime": 16},
|
||||
"sage.combinat.sf.llt": {"walltime": 16},
|
||||
"sage.combinat.sf.macdonald": {"walltime": 64},
|
||||
"sage.combinat.sf.new_kschur": {"walltime": 8},
|
||||
"sage.combinat.sf.sfa": {"walltime": 32},
|
||||
"sage.combinat.shifted_primed_tableau": {"walltime": 16},
|
||||
"sage.combinat.root_system.non_symmetric_macdonald_polynomials": {"walltime": 8},
|
||||
"sage.combinat.root_system.plot": {"walltime": 16},
|
||||
"sage.combinat.root_system.root_lattice_realizations": {"walltime": 8},
|
||||
"sage.combinat.rsk": {"walltime": 8},
|
||||
"sage.combinat.sf.k_dual": {"walltime": 8},
|
||||
"sage.combinat.sf.sf": {"walltime": 8},
|
||||
"sage.combinat.sf.sfa": {"walltime": 8},
|
||||
"sage.combinat.shifted_primed_tableau": {"walltime": 8},
|
||||
"sage.combinat.skew_tableau": {"walltime": 8},
|
||||
"sage.combinat.symmetric_group_algebra": {"walltime": 16},
|
||||
"sage.combinat.tableau": {"walltime": 32},
|
||||
"sage.combinat.tableau_tuple": {"walltime": 32},
|
||||
"sage.combinat.tiling": {"walltime": 16},
|
||||
"sage.combinat.tutorial": {"walltime": 16},
|
||||
"sage.combinat.words.paths": {"walltime": 64},
|
||||
"sage.crypto.block_cipher.des": {"walltime": 16},
|
||||
"sage.crypto.mq.sr": {"walltime": 64},
|
||||
"sage.crypto.sbox": {"walltime": 16},
|
||||
"sage.combinat.species.generating_series": {"walltime": 8},
|
||||
"sage.combinat.tableau": {"walltime": 8},
|
||||
"sage.combinat.tableau_tuple": {"walltime": 8},
|
||||
"sage.combinat.tiling": {"walltime": 8},
|
||||
"sage.combinat.tutorial": {"walltime": 8},
|
||||
"sage.crypto.sboxes": {"walltime": 8},
|
||||
"sage.doctest.forker": {"walltime": 16},
|
||||
"sage.doctest.sources": {"walltime": 64},
|
||||
"sage.doctest.test": {"walltime": 128},
|
||||
"sage.dynamics.arithmetic_dynamics.projective_ds": {"walltime": 64},
|
||||
"sage.dynamics.arithmetic_dynamics.wehlerK3": {"walltime": 8},
|
||||
"sage.dynamics.cellular_automata.glca": {"walltime": 8},
|
||||
"sage.dynamics.arithmetic_dynamics.projective_ds": {"walltime": 32},
|
||||
"sage.dynamics.cellular_automata.solitons": {"walltime": 8},
|
||||
"sage.dynamics.complex_dynamics.mandel_julia": {"walltime": 16},
|
||||
"sage.functions.bessel": {"walltime": 16},
|
||||
"sage.functions.exp_integral": {"walltime": 8},
|
||||
"sage.functions.hypergeometric": {"walltime": 8},
|
||||
"sage.functions.orthogonal_polys": {"walltime": 8},
|
||||
"sage.functions.other": {"walltime": 16},
|
||||
"sage.functions.piecewise": {"walltime": 8},
|
||||
"sage.games.quantumino": {"walltime": 8},
|
||||
"sage.geometry.cone": {"walltime": 32},
|
||||
"sage.geometry.fan": {"walltime": 8},
|
||||
"sage.geometry.hyperbolic_space.hyperbolic_geodesic": {"walltime": 8},
|
||||
"sage.geometry.hyperplane_arrangement.arrangement": {"walltime": 16},
|
||||
"sage.geometry.hyperplane_arrangement.library": {"walltime": 8},
|
||||
"sage.geometry.hyperplane_arrangement.arrangement": {"walltime": 8},
|
||||
"sage.geometry.hyperplane_arrangement.plot": {"walltime": 8},
|
||||
"sage.geometry.lattice_polytope": {"walltime": 16},
|
||||
"sage.geometry.polyhedral_complex": {"walltime": 8},
|
||||
"sage.geometry.polyhedron.base": {"walltime": 32},
|
||||
"sage.geometry.polyhedron.library": {"walltime": 32},
|
||||
"sage.geometry.polyhedron.plot": {"walltime": 8},
|
||||
"sage.geometry.polyhedron.base": {"walltime": 8},
|
||||
"sage.geometry.polyhedron.base5": {"walltime": 8},
|
||||
"sage.geometry.polyhedron.base6": {"walltime": 16},
|
||||
"sage.geometry.polyhedron.library": {"walltime": 16},
|
||||
"sage.geometry.riemannian_manifolds.parametrized_surface3d": {"walltime": 16},
|
||||
"sage.geometry.triangulation.base": {"walltime": 32},
|
||||
"sage.geometry.triangulation.point_configuration": {"walltime": 16},
|
||||
"sage.graphs.chrompoly": {"walltime": 8},
|
||||
"sage.graphs.connectivity": {"walltime": 16},
|
||||
"sage.graphs.generators.basic": {"walltime": 16},
|
||||
"sage.graphs.generators.classical_geometries": {"walltime": 32},
|
||||
"sage.graphs.generators.distance_regular": {"walltime": 256},
|
||||
"sage.graphs.generators.families": {"walltime": 32},
|
||||
"sage.graphs.generators.smallgraphs": {"walltime": 16},
|
||||
"sage.graphs.generic_graph": {"walltime": 32},
|
||||
"sage.graphs.genus": {"walltime": 16},
|
||||
"sage.graphs.connectivity": {"walltime": 8},
|
||||
"sage.graphs.generators.classical_geometries": {"walltime": 8},
|
||||
"sage.graphs.generators.distance_regular": {"walltime": 32},
|
||||
"sage.graphs.generators.smallgraphs": {"walltime": 8},
|
||||
"sage.graphs.generic_graph": {"walltime": 16},
|
||||
"sage.graphs.graph": {"walltime": 16},
|
||||
"sage.graphs.graph_generators": {"walltime": 8},
|
||||
"sage.graphs.graph_list": {"walltime": 8},
|
||||
"sage.graphs.graph_plot": {"walltime": 8},
|
||||
"sage.graphs.strongly_regular_db": {"walltime": 16},
|
||||
"sage.groups.cubic_braid": {"walltime": 16},
|
||||
"sage.groups.fqf_orthogonal": {"walltime": 16},
|
||||
"sage.groups.libgap_mixin": {"walltime": 8},
|
||||
"sage.groups.libgap_morphism": {"walltime": 8},
|
||||
"sage.groups.lie_gps.nilpotent_lie_group": {"walltime": 16},
|
||||
"sage.groups.matrix_gps.finitely_generated": {"walltime": 8},
|
||||
"sage.groups.matrix_gps.heisenberg": {"walltime": 32},
|
||||
"sage.groups.matrix_gps.linear": {"walltime": 8},
|
||||
"sage.groups.perm_gps.cubegroup": {"walltime": 16},
|
||||
"sage.groups.perm_gps.partn_ref.refinement_graphs": {"walltime": 8},
|
||||
"sage.graphs.strongly_regular_db": {"walltime": 8},
|
||||
"sage.groups.cactus_group": {"walltime": 8},
|
||||
"sage.groups.cubic_braid": {"walltime": 8},
|
||||
"sage.groups.lie_gps.nilpotent_lie_group": {"walltime": 8},
|
||||
"sage.groups.matrix_gps.finitely_generated_gap": {"walltime": 8},
|
||||
"sage.groups.perm_gps.permgroup": {"walltime": 8},
|
||||
"sage.groups.perm_gps.permgroup_named": {"walltime": 8},
|
||||
"sage.homology.hochschild_complex": {"walltime": 8},
|
||||
"sage.homology.homology_vector_space_with_basis": {"walltime": 8},
|
||||
"sage.interacts.test_jupyter": {"walltime": 16},
|
||||
"sage.interfaces.ecm": {"walltime": 8},
|
||||
"sage.interfaces.expect": {"walltime": 8},
|
||||
"sage.interfaces.gap": {"walltime": 16},
|
||||
"sage.interfaces.maxima": {"walltime": 8},
|
||||
"sage.interfaces.maxima_abstract": {"walltime": 64},
|
||||
"sage.interfaces.psage": {"walltime": 8},
|
||||
"sage.interfaces.sage0": {"walltime": 8},
|
||||
"sage.lfunctions.zero_sums": {"walltime": 8},
|
||||
"sage.libs.eclib.interface": {"walltime": 16},
|
||||
"sage.interfaces.gap": {"walltime": 8},
|
||||
"sage.interfaces.gap_workspace": {"walltime": 8},
|
||||
"sage.interfaces.sage0": {"walltime": 16},
|
||||
"sage.libs.eclib.interface": {"walltime": 32},
|
||||
"sage.libs.eclib.mwrank": {"walltime": 16},
|
||||
"sage.libs.gap.test_long": {"walltime": 32},
|
||||
"sage.libs.giac": {"walltime": 32},
|
||||
"sage.manifolds.catalog": {"walltime": 8},
|
||||
"sage.manifolds.chart": {"walltime": 32},
|
||||
"sage.manifolds.chart": {"walltime": 16},
|
||||
"sage.manifolds.chart_func": {"walltime": 8},
|
||||
"sage.manifolds.continuous_map": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.affine_connection": {"walltime": 128},
|
||||
"sage.manifolds.differentiable.affine_connection": {"walltime": 32},
|
||||
"sage.manifolds.differentiable.automorphismfield": {"walltime": 32},
|
||||
"sage.manifolds.differentiable.automorphismfield_group": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.bundle_connection": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.characteristic_cohomology_class": {"walltime": 64},
|
||||
"sage.manifolds.differentiable.characteristic_cohomology_class": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.curve": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.degenerate": {"walltime": 32},
|
||||
"sage.manifolds.differentiable.degenerate_submanifold": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.diff_form": {"walltime": 64},
|
||||
"sage.manifolds.differentiable.degenerate": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.degenerate_submanifold": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.diff_form": {"walltime": 32},
|
||||
"sage.manifolds.differentiable.diff_map": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.examples.euclidean": {"walltime": 32},
|
||||
"sage.manifolds.differentiable.examples.sphere": {"walltime": 32},
|
||||
"sage.manifolds.differentiable.integrated_curve": {"walltime": 32},
|
||||
"sage.manifolds.differentiable.levi_civita_connection": {"walltime": 32},
|
||||
"sage.manifolds.differentiable.manifold": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.manifold_homset": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.levi_civita_connection": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.manifold": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.manifold_homset": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.metric": {"walltime": 64},
|
||||
"sage.manifolds.differentiable.mixed_form": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.mixed_form_algebra": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.multivectorfield": {"walltime": 64},
|
||||
"sage.manifolds.differentiable.pseudo_riemannian": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.pseudo_riemannian_submanifold": {"walltime": 128},
|
||||
"sage.manifolds.differentiable.scalarfield": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.pseudo_riemannian": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.pseudo_riemannian_submanifold": {"walltime": 32},
|
||||
"sage.manifolds.differentiable.scalarfield": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.scalarfield_algebra": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.tangent_vector": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.tangent_vector": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.tensorfield": {"walltime": 128},
|
||||
"sage.manifolds.differentiable.tensorfield_paral": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.vector_bundle": {"walltime": 16},
|
||||
"sage.manifolds.differentiable.vectorfield": {"walltime": 64},
|
||||
"sage.manifolds.differentiable.vectorframe": {"walltime": 8},
|
||||
"sage.manifolds.differentiable.vectorfield": {"walltime": 16},
|
||||
"sage.manifolds.point": {"walltime": 16},
|
||||
"sage.manifolds.scalarfield": {"walltime": 16},
|
||||
"sage.manifolds.scalarfield_algebra": {"walltime": 8},
|
||||
"sage.manifolds.section": {"walltime": 32},
|
||||
"sage.manifolds.trivialization": {"walltime": 8},
|
||||
"sage.manifolds.vector_bundle": {"walltime": 8},
|
||||
"sage.matrix.benchmark": {"walltime": 8},
|
||||
"sage.manifolds.section": {"walltime": 16},
|
||||
"sage.matrix.matrix2": {"walltime": 16},
|
||||
"sage.matrix.matrix_integer_dense": {"walltime": 16},
|
||||
"sage.matrix.matrix_integer_dense_hnf": {"walltime": 32},
|
||||
"sage.matrix.matrix_mod2_dense": {"walltime": 8},
|
||||
"sage.matrix.matrix_rational_dense": {"walltime": 8},
|
||||
"sage.matrix.special": {"walltime": 8},
|
||||
"sage.matroids.catalog": {"walltime": 64},
|
||||
"sage.misc.cachefunc": {"walltime": 16},
|
||||
"sage.misc.cython": {"walltime": 8},
|
||||
"sage.misc.functional": {"walltime": 8},
|
||||
"sage.misc.randstate": {"walltime": 16},
|
||||
"sage.misc.sagedoc": {"walltime": 64},
|
||||
"sage.misc.sageinspect": {"walltime": 32},
|
||||
"sage.modular.abvar.abvar": {"walltime": 16},
|
||||
"sage.misc.sagedoc": {"walltime": 16},
|
||||
"sage.misc.sageinspect": {"walltime": 16},
|
||||
"sage.misc.trace": {"walltime": 8},
|
||||
"sage.modular.abvar.abvar": {"walltime": 8},
|
||||
"sage.modular.abvar.homspace": {"walltime": 8},
|
||||
"sage.modular.abvar.lseries": {"walltime": 8},
|
||||
"sage.modular.arithgroup.arithgroup_perm": {"walltime": 8},
|
||||
"sage.modular.arithgroup.tests": {"walltime": 8},
|
||||
"sage.modular.btquotients.pautomorphicform": {"walltime": 32},
|
||||
"sage.modular.hypergeometric_motive": {"walltime": 16},
|
||||
"sage.modular.local_comp.local_comp": {"walltime": 32},
|
||||
"sage.modular.local_comp.type_space": {"walltime": 16},
|
||||
"sage.modular.modform.ambient_R": {"walltime": 16},
|
||||
"sage.modular.modform.constructor": {"walltime": 8},
|
||||
"sage.modular.modform.cuspidal_submodule": {"walltime": 16},
|
||||
"sage.modular.modform.element": {"walltime": 64},
|
||||
"sage.modular.modform.ring": {"walltime": 64},
|
||||
"sage.modular.modform.space": {"walltime": 8},
|
||||
"sage.modular.btquotients.btquotient": {"walltime": 8},
|
||||
"sage.modular.btquotients.pautomorphicform": {"walltime": 16},
|
||||
"sage.modular.hecke.submodule": {"walltime": 8},
|
||||
"sage.modular.hypergeometric_motive": {"walltime": 8},
|
||||
"sage.modular.local_comp.local_comp": {"walltime": 16},
|
||||
"sage.modular.local_comp.type_space": {"walltime": 8},
|
||||
"sage.modular.modform.element": {"walltime": 32},
|
||||
"sage.modular.modform_hecketriangle.abstract_space": {"walltime": 16},
|
||||
"sage.modular.modform_hecketriangle.graded_ring_element": {"walltime": 16},
|
||||
"sage.modular.modform_hecketriangle.hecke_triangle_group_element": {"walltime": 32},
|
||||
"sage.modular.modform_hecketriangle.readme": {"walltime": 16},
|
||||
"sage.modular.modform_hecketriangle.space": {"walltime": 8},
|
||||
"sage.modular.modsym.ambient": {"walltime": 16},
|
||||
"sage.modular.modsym.space": {"walltime": 8},
|
||||
"sage.modular.pollack_stevens.modsym": {"walltime": 64},
|
||||
"sage.modular.pollack_stevens.padic_lseries": {"walltime": 32},
|
||||
"sage.modules.finite_submodule_iter": {"walltime": 16},
|
||||
"sage.modules.free_module": {"walltime": 16},
|
||||
"sage.modules.free_module_element": {"walltime": 8},
|
||||
"sage.modules.free_module_integer": {"walltime": 32},
|
||||
"sage.modules.free_quadratic_module_integer_symmetric": {"walltime": 8},
|
||||
"sage.modules.torsion_quadratic_module": {"walltime": 16},
|
||||
"sage.modular.overconvergent.genus0": {"walltime": 8},
|
||||
"sage.modular.pollack_stevens.modsym": {"walltime": 8},
|
||||
"sage.modules.fp_graded.morphism": {"walltime": 8},
|
||||
"sage.modules.free_module": {"walltime": 8},
|
||||
"sage.parallel.map_reduce": {"walltime": 8},
|
||||
"sage.plot.animate": {"walltime": 16},
|
||||
"sage.plot.arrow": {"walltime": 8},
|
||||
"sage.plot.circle": {"walltime": 8},
|
||||
"sage.plot.complex_plot": {"walltime": 8},
|
||||
"sage.plot.complex_plot": {"walltime": 16},
|
||||
"sage.plot.contour_plot": {"walltime": 32},
|
||||
"sage.plot.density_plot": {"walltime": 8},
|
||||
"sage.plot.graphics": {"walltime": 32},
|
||||
"sage.plot.line": {"walltime": 8},
|
||||
"sage.plot.matrix_plot": {"walltime": 16},
|
||||
@ -283,115 +154,53 @@
|
||||
"sage.plot.plot": {"walltime": 64},
|
||||
"sage.plot.plot3d.base": {"walltime": 8},
|
||||
"sage.plot.plot3d.implicit_plot3d": {"walltime": 16},
|
||||
"sage.plot.plot3d.implicit_surface": {"walltime": 8},
|
||||
"sage.plot.plot3d.parametric_plot3d": {"walltime": 8},
|
||||
"sage.plot.plot3d.parametric_plot3d": {"walltime": 16},
|
||||
"sage.plot.plot3d.parametric_surface": {"walltime": 8},
|
||||
"sage.plot.plot3d.plot3d": {"walltime": 16},
|
||||
"sage.plot.plot3d.tachyon": {"walltime": 8},
|
||||
"sage.plot.plot3d.transform": {"walltime": 32},
|
||||
"sage.plot.point": {"walltime": 8},
|
||||
"sage.plot.polygon": {"walltime": 8},
|
||||
"sage.plot.streamline_plot": {"walltime": 8},
|
||||
"sage.quadratic_forms.genera.genus": {"walltime": 16},
|
||||
"sage.quadratic_forms.quadratic_form__automorphisms": {"walltime": 8},
|
||||
"sage.quadratic_forms.quadratic_form__local_representation_conditions": {"walltime": 64},
|
||||
"sage.quadratic_forms.quadratic_form__neighbors": {"walltime": 8},
|
||||
"sage.quadratic_forms.quadratic_form__siegel_product": {"walltime": 8},
|
||||
"sage.repl.ipython_extension": {"walltime": 8},
|
||||
"sage.rings.asymptotic.asymptotic_expansion_generators": {"walltime": 64},
|
||||
"sage.rings.asymptotic.asymptotic_expansion_generators": {"walltime": 16},
|
||||
"sage.rings.asymptotic.asymptotic_ring": {"walltime": 8},
|
||||
"sage.rings.asymptotic.asymptotics_multivariate_generating_functions": {"walltime": 32},
|
||||
"sage.rings.asymptotic.term_monoid": {"walltime": 8},
|
||||
"sage.rings.continued_fraction": {"walltime": 8},
|
||||
"sage.rings.asymptotic.asymptotics_multivariate_generating_functions": {"walltime": 8},
|
||||
"sage.rings.finite_rings.finite_field_base": {"walltime": 8},
|
||||
"sage.rings.function_field.function_field": {"walltime": 128},
|
||||
"sage.rings.function_field.function_field_valuation": {"walltime": 64},
|
||||
"sage.rings.function_field.function_field": {"walltime": 8},
|
||||
"sage.rings.function_field.ideal": {"walltime": 8},
|
||||
"sage.rings.function_field.place": {"walltime": 8},
|
||||
"sage.rings.integer": {"walltime": 64},
|
||||
"sage.rings.invariants.invariant_theory": {"walltime": 8},
|
||||
"sage.rings.number_field.bdd_height": {"walltime": 8},
|
||||
"sage.rings.number_field.number_field": {"walltime": 64},
|
||||
"sage.rings.number_field.number_field_element": {"walltime": 16},
|
||||
"sage.rings.number_field.splitting_field": {"walltime": 8},
|
||||
"sage.rings.number_field.totallyreal": {"walltime": 16},
|
||||
"sage.rings.number_field.totallyreal_rel": {"walltime": 8},
|
||||
"sage.rings.padics.padic_base_leaves": {"walltime": 64},
|
||||
"sage.rings.padics.padic_extension_leaves": {"walltime": 64},
|
||||
"sage.rings.padics.padic_generic_element": {"walltime": 16},
|
||||
"sage.rings.padics.padic_lattice_element": {"walltime": 32},
|
||||
"sage.rings.padics.relative_extension_leaves": {"walltime": 32},
|
||||
"sage.rings.lazy_series": {"walltime": 8},
|
||||
"sage.rings.lazy_series_ring": {"walltime": 32},
|
||||
"sage.rings.number_field.number_field": {"walltime": 32},
|
||||
"sage.rings.number_field.number_field_element": {"walltime": 8},
|
||||
"sage.rings.padics.padic_base_leaves": {"walltime": 8},
|
||||
"sage.rings.padics.padic_generic_element": {"walltime": 8},
|
||||
"sage.rings.polynomial.multi_polynomial_ideal": {"walltime": 8},
|
||||
"sage.rings.polynomial.multi_polynomial_sequence": {"walltime": 8},
|
||||
"sage.rings.polynomial.ore_function_element": {"walltime": 8},
|
||||
"sage.rings.polynomial.polynomial_element": {"walltime": 16},
|
||||
"sage.rings.polynomial.polynomial_rational_flint": {"walltime": 8},
|
||||
"sage.rings.qqbar": {"walltime": 16},
|
||||
"sage.rings.tests": {"walltime": 16},
|
||||
"sage.rings.valuation.augmented_valuation": {"walltime": 32},
|
||||
"sage.rings.valuation.mapped_valuation": {"walltime": 64},
|
||||
"sage.rings.valuation.valuation": {"walltime": 8},
|
||||
"sage.sandpiles.sandpile": {"walltime": 16},
|
||||
"sage.sandpiles.sandpile": {"walltime": 8},
|
||||
"sage.schemes.curves.affine_curve": {"walltime": 16},
|
||||
"sage.schemes.curves.closed_point": {"walltime": 8},
|
||||
"sage.schemes.curves.projective_curve": {"walltime": 32},
|
||||
"sage.schemes.cyclic_covers.cycliccover_finite_field": {"walltime": 64},
|
||||
"sage.schemes.elliptic_curves.BSD": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.Qcurves": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.constructor": {"walltime": 32},
|
||||
"sage.schemes.elliptic_curves.ell_curve_isogeny": {"walltime": 16},
|
||||
"sage.schemes.elliptic_curves.ell_egros": {"walltime": 32},
|
||||
"sage.schemes.elliptic_curves.ell_finite_field": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.ell_curve_isogeny": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.ell_generic": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.ell_modular_symbols": {"walltime": 16},
|
||||
"sage.schemes.elliptic_curves.ell_number_field": {"walltime": 128},
|
||||
"sage.schemes.elliptic_curves.ell_modular_symbols": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.ell_point": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.ell_rational_field": {"walltime": 128},
|
||||
"sage.schemes.elliptic_curves.gal_reps_number_field": {"walltime": 32},
|
||||
"sage.schemes.elliptic_curves.gp_simon": {"walltime": 16},
|
||||
"sage.schemes.elliptic_curves.heegner": {"walltime": 32},
|
||||
"sage.schemes.elliptic_curves.height": {"walltime": 64},
|
||||
"sage.schemes.elliptic_curves.isogeny_class": {"walltime": 32},
|
||||
"sage.schemes.elliptic_curves.isogeny_small_degree": {"walltime": 64},
|
||||
"sage.schemes.elliptic_curves.kraus": {"walltime": 16},
|
||||
"sage.schemes.elliptic_curves.ell_rational_field": {"walltime": 32},
|
||||
"sage.schemes.elliptic_curves.height": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.isogeny_small_degree": {"walltime": 16},
|
||||
"sage.schemes.elliptic_curves.mod_sym_num": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.padic_lseries": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.padics": {"walltime": 16},
|
||||
"sage.schemes.elliptic_curves.saturation": {"walltime": 16},
|
||||
"sage.schemes.elliptic_curves.sha_tate": {"walltime": 32},
|
||||
"sage.schemes.hyperelliptic_curves.hyperelliptic_finite_field": {"walltime": 64},
|
||||
"sage.schemes.hyperelliptic_curves.hyperelliptic_generic": {"walltime": 8},
|
||||
"sage.schemes.hyperelliptic_curves.hyperelliptic_padic_field": {"walltime": 32},
|
||||
"sage.schemes.hyperelliptic_curves.monsky_washnitzer": {"walltime": 8},
|
||||
"sage.schemes.projective.projective_rational_point": {"walltime": 8},
|
||||
"sage.schemes.riemann_surfaces.riemann_surface": {"walltime": 64},
|
||||
"sage.schemes.elliptic_curves.padics": {"walltime": 8},
|
||||
"sage.schemes.elliptic_curves.sha_tate": {"walltime": 16},
|
||||
"sage.schemes.hyperelliptic_curves.hyperelliptic_padic_field": {"walltime": 16},
|
||||
"sage.schemes.riemann_surfaces.riemann_surface": {"walltime": 32},
|
||||
"sage.schemes.toric.chow_group": {"walltime": 8},
|
||||
"sage.schemes.toric.sheaf.klyachko": {"walltime": 8},
|
||||
"sage.stats.distributions.discrete_gaussian_integer": {"walltime": 8},
|
||||
"sage.stats.time_series": {"walltime": 8},
|
||||
"sage.structure.coerce_dict": {"walltime": 32},
|
||||
"sage.structure.element": {"walltime": 16},
|
||||
"sage.structure.sage_object": {"walltime": 8},
|
||||
"sage.symbolic.expression": {"walltime": 32},
|
||||
"sage.symbolic.integration.integral": {"walltime": 32},
|
||||
"sage.symbolic.random_tests": {"walltime": 32},
|
||||
"sage.symbolic.integration.integral": {"walltime": 16},
|
||||
"sage.symbolic.relation": {"walltime": 8},
|
||||
"sage.tests.book_schilling_zabrocki_kschur_primer": {"walltime": 32},
|
||||
"sage.tests.book_stein_ent": {"walltime": 16},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.combinat_doctest": {"walltime": 32},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.float_doctest": {"walltime": 16},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.graphique_doctest": {"walltime": 32},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.graphtheory_doctest": {"walltime": 8},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.integration_doctest": {"walltime": 32},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.mpoly_doctest": {"walltime": 8},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.nonlinear_doctest": {"walltime": 8},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.recequadiff_doctest": {"walltime": 8},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.sol.graphique_doctest": {"walltime": 16},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.sol.numbertheory_doctest": {"walltime": 16},
|
||||
"sage.tests.books.computational-mathematics-with-sagemath.sol.polynomes_doctest": {"walltime": 16},
|
||||
"sage.tests.cmdline": {"walltime": 64},
|
||||
"sage.tests.gosper-sum": {"walltime": 16},
|
||||
"sage.tests.parigp": {"walltime": 8},
|
||||
"sage.topology.simplicial_complex": {"walltime": 8},
|
||||
"sage.topology.simplicial_complex_examples": {"walltime": 16}
|
||||
"sage.tests.book_schilling_zabrocki_kschur_primer": {"walltime": 16},
|
||||
"sage.tests.book_stein_ent": {"walltime": 8},
|
||||
"sage.topology.simplicial_complex": {"walltime": 16}
|
||||
}
|
||||
|
@ -1,205 +0,0 @@
|
||||
diff --git a/build/pkgs/singular/checksums.ini b/build/pkgs/singular/checksums.ini
|
||||
index 2e33a405d36..313463d2fea 100644
|
||||
--- a/build/pkgs/singular/checksums.ini
|
||||
+++ b/build/pkgs/singular/checksums.ini
|
||||
@@ -1,5 +1,5 @@
|
||||
tarball=singular-VERSION.tar.gz
|
||||
-sha1=6c2b622d3681e2de3d58d30c654d43d3e32b720c
|
||||
-md5=abb1e37c794472e7760655358ab66054
|
||||
-cksum=17455733
|
||||
+sha1=28bb3ee97ef48d04dfa96de182fd93eebe08426c
|
||||
+md5=fc0a4f5720dadba45a52ee94324ce00c
|
||||
+cksum=1573851737
|
||||
upstream_url=ftp://jim.mathematik.uni-kl.de/pub/Math/Singular/SOURCES/4-3-1/singular-VERSION.tar.gz
|
||||
diff --git a/build/pkgs/singular/package-version.txt b/build/pkgs/singular/package-version.txt
|
||||
index 11300c77e7d..66e2bede53a 100644
|
||||
--- a/build/pkgs/singular/package-version.txt
|
||||
+++ b/build/pkgs/singular/package-version.txt
|
||||
@@ -1 +1 @@
|
||||
-4.3.1p1
|
||||
+4.3.1p3
|
||||
diff --git a/src/sage/libs/singular/decl.pxd b/src/sage/libs/singular/decl.pxd
|
||||
index 8e3ac314b67..747a6b1e2fb 100644
|
||||
--- a/src/sage/libs/singular/decl.pxd
|
||||
+++ b/src/sage/libs/singular/decl.pxd
|
||||
@@ -574,7 +574,7 @@ cdef extern from "singular/Singular/libsingular.h":
|
||||
|
||||
# gets a component out of a polynomial vector
|
||||
|
||||
- poly *pTakeOutComp1(poly **, int)
|
||||
+ poly *pTakeOutComp(poly **, int)
|
||||
|
||||
# deep copy p
|
||||
|
||||
diff --git a/src/sage/libs/singular/singular.pyx b/src/sage/libs/singular/singular.pyx
|
||||
index d8ea7b07f3c..3a1271cd59f 100644
|
||||
--- a/src/sage/libs/singular/singular.pyx
|
||||
+++ b/src/sage/libs/singular/singular.pyx
|
||||
@@ -1726,20 +1726,21 @@ cdef int overflow_check(unsigned long e, ring *_ring) except -1:
|
||||
|
||||
Whether an overflow occurs or not partially depends
|
||||
on the number of variables in the ring. See trac ticket
|
||||
- :trac:`11856`. With Singular 4, it is by default optimized
|
||||
- for at least 4 variables on 64-bit and 2 variables on 32-bit,
|
||||
- which in both cases makes a maximal default exponent of
|
||||
- 2^16-1.
|
||||
+ :trac:`11856`.
|
||||
|
||||
EXAMPLES::
|
||||
|
||||
sage: P.<x,y> = QQ[]
|
||||
- sage: y^(2^16-1)
|
||||
- y^65535
|
||||
- sage: y^2^16
|
||||
+ sage: y^(2^30)
|
||||
+ Traceback (most recent call last): # 32-bit
|
||||
+ ... # 32-bit
|
||||
+ OverflowError: exponent overflow (1073741824) # 32-bit
|
||||
+ y^1073741824 # 64-bit
|
||||
+ sage: y^2^32
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
- OverflowError: exponent overflow (65536)
|
||||
+ OverflowError: Python int too large to convert to C unsigned long # 32-bit
|
||||
+ OverflowError: exponent overflow (4294967296) # 64-bit
|
||||
"""
|
||||
if unlikely(e > _ring.bitmask):
|
||||
raise OverflowError("exponent overflow (%d)"%(e))
|
||||
diff --git a/src/sage/rings/polynomial/multi_polynomial_ideal.py b/src/sage/rings/polynomial/multi_polynomial_ideal.py
|
||||
index 7dc058a22f0..71494eddbc0 100644
|
||||
--- a/src/sage/rings/polynomial/multi_polynomial_ideal.py
|
||||
+++ b/src/sage/rings/polynomial/multi_polynomial_ideal.py
|
||||
@@ -60,7 +60,7 @@
|
||||
Note that the result of a computation is not necessarily reduced::
|
||||
|
||||
sage: (a+b)^17
|
||||
- 256*a*b^16 + 256*b^17
|
||||
+ a*b^16 + b^17
|
||||
sage: S(17) == 0
|
||||
True
|
||||
|
||||
diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
|
||||
index 4dad016b33f..9bf67dd1425 100644
|
||||
--- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
|
||||
+++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
|
||||
@@ -193,7 +193,7 @@ from sage.libs.singular.decl cimport (
|
||||
p_IsUnit, p_IsOne, p_Series, p_Head, idInit, fast_map_common_subexp, id_Delete,
|
||||
p_IsHomogeneous, p_Homogen, p_Totaldegree,pLDeg1_Totaldegree, singclap_pdivide, singclap_factorize,
|
||||
idLift, IDELEMS, On, Off, SW_USE_CHINREM_GCD, SW_USE_EZGCD,
|
||||
- p_LmIsConstant, pTakeOutComp1, singclap_gcd, pp_Mult_qq, p_GetMaxExp,
|
||||
+ p_LmIsConstant, pTakeOutComp, singclap_gcd, pp_Mult_qq, p_GetMaxExp,
|
||||
pLength, kNF, p_Neg, p_Minus_mm_Mult_qq, p_Plus_mm_Mult_qq,
|
||||
pDiff, singclap_resultant, p_Normalize,
|
||||
prCopyR, prCopyR_NoSort)
|
||||
@@ -1587,7 +1587,8 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
|
||||
9/4
|
||||
|
||||
sage: P.monomial_quotient(x,y) # Note the wrong result
|
||||
- x*y^65535*z^65535
|
||||
+ x*y^65535*z^65535 # 32-bit
|
||||
+ x*y^1048575*z^1048575 # 64-bit
|
||||
|
||||
sage: P.monomial_quotient(x,P(1))
|
||||
x
|
||||
@@ -2247,10 +2248,11 @@ cdef class MPolynomial_libsingular(MPolynomial):
|
||||
9/4*x^2 - 1/4*y^2 - y - 1
|
||||
|
||||
sage: P.<x,y> = PolynomialRing(QQ,order='lex')
|
||||
- sage: (x^2^15) * x^2^15
|
||||
+ sage: (x^2^32) * x^2^32
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
- OverflowError: exponent overflow (...)
|
||||
+ OverflowError: Python int too large to convert to C unsigned long # 32-bit
|
||||
+ OverflowError: exponent overflow (...) # 64-bit
|
||||
"""
|
||||
# all currently implemented rings are commutative
|
||||
cdef poly *_p
|
||||
@@ -2371,10 +2373,11 @@ cdef class MPolynomial_libsingular(MPolynomial):
|
||||
ValueError: not a 2nd power
|
||||
|
||||
sage: P.<x,y> = PolynomialRing(QQ,order='lex')
|
||||
- sage: (x+y^2^15)^10
|
||||
+ sage: (x+y^2^32)^10
|
||||
Traceback (most recent call last):
|
||||
....
|
||||
- OverflowError: exponent overflow (...)
|
||||
+ OverflowError: Python int too large to convert to C unsigned long # 32-bit
|
||||
+ OverflowError: exponent overflow (...) # 64-bit
|
||||
|
||||
Test fractional powers (:trac:`22329`)::
|
||||
|
||||
@@ -3461,7 +3464,7 @@ cdef class MPolynomial_libsingular(MPolynomial):
|
||||
x^10000
|
||||
no overflow
|
||||
|
||||
- sage: n = 1000
|
||||
+ sage: n = 100000
|
||||
sage: try:
|
||||
....: f = x^n
|
||||
....: f.subs(x = x^n)
|
||||
@@ -4567,7 +4570,7 @@ cdef class MPolynomial_libsingular(MPolynomial):
|
||||
l = []
|
||||
for i from 0 <= i < IDELEMS(res):
|
||||
for j from 1 <= j <= IDELEMS(_I):
|
||||
- l.append( new_MP(parent, pTakeOutComp1(&res.m[i], j)) )
|
||||
+ l.append( new_MP(parent, pTakeOutComp(&res.m[i], 1)) )
|
||||
|
||||
id_Delete(&fI, r)
|
||||
id_Delete(&_I, r)
|
||||
@@ -4635,7 +4638,7 @@ cdef class MPolynomial_libsingular(MPolynomial):
|
||||
|
||||
sage: f = 3*x
|
||||
sage: f.reduce([2*x,y])
|
||||
- 3*x
|
||||
+ x
|
||||
|
||||
The reduction is not canonical when ``I`` is not a Groebner
|
||||
basis::
|
||||
diff --git a/src/sage/rings/polynomial/plural.pyx b/src/sage/rings/polynomial/plural.pyx
|
||||
index 1c9f35e56ba..587511c3888 100644
|
||||
--- a/src/sage/rings/polynomial/plural.pyx
|
||||
+++ b/src/sage/rings/polynomial/plural.pyx
|
||||
@@ -1619,10 +1619,10 @@ cdef class NCPolynomial_plural(RingElement):
|
||||
sage: P = A.g_algebra(relations={y*x:-x*y + z}, order='lex')
|
||||
sage: P.inject_variables()
|
||||
Defining x, z, y
|
||||
- sage: (x^2^15) * x^2^15
|
||||
+ sage: (x^2^31) * x^2^31
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
- OverflowError: exponent overflow (65536)
|
||||
+ OverflowError: exponent overflow (2147483648)
|
||||
"""
|
||||
# all currently implemented rings are commutative
|
||||
cdef poly *_p
|
||||
@@ -1689,10 +1689,10 @@ cdef class NCPolynomial_plural(RingElement):
|
||||
sage: P = A.g_algebra(relations={y*x:-x*y + z}, order='lex')
|
||||
sage: P.inject_variables()
|
||||
Defining x, z, y
|
||||
- sage: (x+y^2^15)^10
|
||||
+ sage: (x+y^2^31)^10
|
||||
Traceback (most recent call last):
|
||||
....
|
||||
- OverflowError: exponent overflow (327680)
|
||||
+ OverflowError: exponent overflow (2147483648)
|
||||
"""
|
||||
if type(exp) is not Integer:
|
||||
try:
|
||||
diff --git a/src/sage/structure/element.pyx b/src/sage/structure/element.pyx
|
||||
index b5d83ef71b6..5c45b3fb528 100644
|
||||
--- a/src/sage/structure/element.pyx
|
||||
+++ b/src/sage/structure/element.pyx
|
||||
@@ -2705,10 +2705,10 @@ cdef class RingElement(ModuleElement):
|
||||
with Singular 4::
|
||||
|
||||
sage: K.<x,y> = ZZ[]
|
||||
- sage: (x^12345)^54321
|
||||
+ sage: (x^123456)^654321
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
- OverflowError: exponent overflow (670592745)
|
||||
+ OverflowError: exponent overflow (...)
|
||||
"""
|
||||
return arith_generic_power(self, n)
|
||||
|
@ -1,49 +0,0 @@
|
||||
diff --git a/src/sage/rings/number_field/number_field_ideal.py b/src/sage/rings/number_field/number_field_ideal.py
|
||||
index d5f7157217f..8ca1f958039 100644
|
||||
--- a/src/sage/rings/number_field/number_field_ideal.py
|
||||
+++ b/src/sage/rings/number_field/number_field_ideal.py
|
||||
@@ -996,16 +996,38 @@ def is_prime(self):
|
||||
False
|
||||
sage: K.ideal(17).is_prime() # ramified
|
||||
False
|
||||
+
|
||||
+ TESTS:
|
||||
+
|
||||
+ Check that we do not factor the norm of the ideal, this used
|
||||
+ to take half an hour, see :trac:`33360`::
|
||||
+
|
||||
+ sage: K.<a,b,c> = NumberField([x^2-2,x^2-3,x^2-5])
|
||||
+ sage: t = (((-2611940*c + 1925290/7653)*b - 1537130/7653*c
|
||||
+ ....: + 10130950)*a + (1343014/7653*c - 8349770)*b
|
||||
+ ....: + 6477058*c - 2801449990/4002519)
|
||||
+ sage: t.is_prime()
|
||||
+ False
|
||||
"""
|
||||
try:
|
||||
return self._pari_prime is not None
|
||||
except AttributeError:
|
||||
- F = self.factor() # factorization with caching
|
||||
- if len(F) != 1 or F[0][1] != 1:
|
||||
- self._pari_prime = None
|
||||
- else:
|
||||
- self._pari_prime = F[0][0]._pari_prime
|
||||
- return self._pari_prime is not None
|
||||
+ pass
|
||||
+
|
||||
+ K = self.number_field().pari_nf()
|
||||
+ I = self.pari_hnf()
|
||||
+
|
||||
+ candidate = K.idealismaximal(I) or None
|
||||
+
|
||||
+ # PARI uses probabilistic primality testing inside idealismaximal().
|
||||
+ if get_flag(None, 'arithmetic'):
|
||||
+ # proof required, check using isprime()
|
||||
+ if candidate and not candidate[0].isprime():
|
||||
+ candidate = None
|
||||
+
|
||||
+ self._pari_prime = candidate
|
||||
+
|
||||
+ return self._pari_prime is not None
|
||||
|
||||
def pari_prime(self):
|
||||
r"""
|
@ -1,58 +0,0 @@
|
||||
diff --git a/src/sage/misc/persist.pyx b/src/sage/misc/persist.pyx
|
||||
index 3ac5f1cc2b0..cb1f327c199 100644
|
||||
--- a/src/sage/misc/persist.pyx
|
||||
+++ b/src/sage/misc/persist.pyx
|
||||
@@ -157,7 +157,7 @@ def load(*filename, compress=True, verbose=True, **kwargs):
|
||||
....: _ = f.write(code)
|
||||
sage: load(t)
|
||||
sage: hello
|
||||
- <fortran object>
|
||||
+ <fortran ...>
|
||||
"""
|
||||
import sage.repl.load
|
||||
if len(filename) != 1:
|
||||
diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx
|
||||
index 6f0aeab87ae..b77c69b2f77 100644
|
||||
--- a/src/sage/plot/complex_plot.pyx
|
||||
+++ b/src/sage/plot/complex_plot.pyx
|
||||
@@ -461,6 +461,8 @@ def complex_to_rgb(z_values, contoured=False, tiled=False,
|
||||
rgb[i, j, 2] = b
|
||||
|
||||
sig_off()
|
||||
+ nan_indices = np.isnan(rgb).any(-1) # Mask for undefined points
|
||||
+ rgb[nan_indices] = 1 # Make nan_indices white
|
||||
return rgb
|
||||
|
||||
|
||||
diff --git a/src/sage/plot/histogram.py b/src/sage/plot/histogram.py
|
||||
index 3bc2b76b58e..388c2d1391d 100644
|
||||
--- a/src/sage/plot/histogram.py
|
||||
+++ b/src/sage/plot/histogram.py
|
||||
@@ -87,13 +87,8 @@ def get_minmax_data(self):
|
||||
|
||||
TESTS::
|
||||
|
||||
- sage: h = histogram([10,3,5], normed=True)[0]
|
||||
- doctest:warning...:
|
||||
- DeprecationWarning: the 'normed' option is deprecated. Use 'density' instead.
|
||||
- See https://trac.sagemath.org/25260 for details.
|
||||
+ sage: h = histogram([10,3,5], density=True)[0]
|
||||
sage: h.get_minmax_data()
|
||||
- doctest:warning ...
|
||||
- ...VisibleDeprecationWarning: Passing `normed=True` on non-uniform bins has always been broken, and computes neither the probability density function nor the probability mass function. The result is only correct if the bins are uniform, when density=True will produce the same result anyway. The argument will be removed in a future version of numpy.
|
||||
{'xmax': 10.0, 'xmin': 3.0, 'ymax': 0.476190476190..., 'ymin': 0}
|
||||
"""
|
||||
import numpy
|
||||
diff --git a/src/sage/repl/ipython_extension.py b/src/sage/repl/ipython_extension.py
|
||||
index 798671aab42..cad6a47ca8b 100644
|
||||
--- a/src/sage/repl/ipython_extension.py
|
||||
+++ b/src/sage/repl/ipython_extension.py
|
||||
@@ -405,7 +405,7 @@ def fortran(self, line, cell):
|
||||
....: C END FILE FIB1.F
|
||||
....: ''')
|
||||
sage: fib
|
||||
- <fortran object>
|
||||
+ <fortran ...>
|
||||
sage: from numpy import array
|
||||
sage: a = array(range(10), dtype=float)
|
||||
sage: fib(a, 10)
|
@ -1,57 +0,0 @@
|
||||
diff --git a/src/sage/interfaces/tachyon.py b/src/sage/interfaces/tachyon.py
|
||||
index 23671e50892..ce1d50f71bc 100644
|
||||
--- a/src/sage/interfaces/tachyon.py
|
||||
+++ b/src/sage/interfaces/tachyon.py
|
||||
@@ -683,12 +683,14 @@
|
||||
#*****************************************************************************
|
||||
|
||||
import os
|
||||
+import re
|
||||
|
||||
from sage.cpython.string import bytes_to_str
|
||||
from sage.misc.pager import pager
|
||||
from sage.misc.superseded import deprecation
|
||||
from sage.misc.temporary_file import tmp_filename
|
||||
from sage.structure.sage_object import SageObject
|
||||
+from sage.misc.cachefunc import cached_method
|
||||
|
||||
|
||||
class TachyonRT(SageObject):
|
||||
@@ -799,6 +801,11 @@ def __call__(self, model, outfile='sage.png', verbose=1, extra_opts=''):
|
||||
Parser failed due to an input file syntax error.
|
||||
Aborting render.
|
||||
"""
|
||||
+ if self.version() >= '0.99.2':
|
||||
+ # this keyword was changed in 0.99.2
|
||||
+ model = model.replace(
|
||||
+ " focallength ",
|
||||
+ " focaldist ")
|
||||
modelfile = tmp_filename(ext='.dat')
|
||||
with open(modelfile, 'w') as file:
|
||||
file.write(model)
|
||||
@@ -851,6 +858,25 @@ def usage(self, use_pager=True):
|
||||
else:
|
||||
print(r)
|
||||
|
||||
+ @cached_method
|
||||
+ def version(self):
|
||||
+ """
|
||||
+ Returns the version of the Tachyon raytracer being used.
|
||||
+
|
||||
+ TESTS::
|
||||
+
|
||||
+ sage: tachyon_rt.version() # random
|
||||
+ 0.98.9
|
||||
+ sage: tachyon_rt.version() >= '0.98.9'
|
||||
+ True
|
||||
+ """
|
||||
+ with os.popen('tachyon') as f:
|
||||
+ r = f.readline()
|
||||
+ res = re.search(r"Version ([\d.]*)", r)
|
||||
+ # debian patches tachyon so it won't report the version
|
||||
+ # we hardcode '0.99' since that's indeed the version they ship
|
||||
+ return res[1] if res else '0.99'
|
||||
+
|
||||
def help(self, use_pager=True):
|
||||
"""
|
||||
Deprecated: type 'sage.interfaces.tachyon?' for help
|
@ -1,36 +0,0 @@
|
||||
diff --git a/src/sage/arith/long.pxd b/src/sage/arith/long.pxd
|
||||
index 1c9a53387a0..d96b98f247c 100644
|
||||
--- a/src/sage/arith/long.pxd
|
||||
+++ b/src/sage/arith/long.pxd
|
||||
@@ -270,6 +270,17 @@ cdef inline bint integer_check_long_py(x, long* value, int* err):
|
||||
sage: L += [-x for x in L] + [0, long_min()]
|
||||
sage: for v in L:
|
||||
....: assert check_long_py(int(v)) == v
|
||||
+ sage: check_long_py(int(2^60))
|
||||
+ 1152921504606846976 # 64-bit
|
||||
+ 'Overflow (...)' # 32-bit
|
||||
+ sage: check_long_py(int(2^61))
|
||||
+ 2305843009213693952 # 64-bit
|
||||
+ 'Overflow (...)' # 32-bit
|
||||
+ sage: check_long_py(int(2^62))
|
||||
+ 4611686018427387904 # 64-bit
|
||||
+ 'Overflow (...)' # 32-bit
|
||||
+ sage: check_long_py(int(2^63))
|
||||
+ 'Overflow (...)'
|
||||
sage: check_long_py(int(2^100))
|
||||
'Overflow (...)'
|
||||
sage: check_long_py(int(long_max() + 1))
|
||||
@@ -309,7 +320,12 @@ cdef inline bint integer_check_long_py(x, long* value, int* err):
|
||||
|
||||
cdef long lead
|
||||
cdef long lead_2_overflow = (<long>1) << (BITS_IN_LONG - PyLong_SHIFT)
|
||||
- cdef long lead_3_overflow = (<long>1) << (BITS_IN_LONG - 2 * PyLong_SHIFT)
|
||||
+ cdef long lead_3_overflow
|
||||
+ if BITS_IN_LONG < 2 * PyLong_SHIFT:
|
||||
+ # in this case 3 digit is always overflow
|
||||
+ lead_3_overflow = 0
|
||||
+ else:
|
||||
+ lead_3_overflow = (<long>1) << (BITS_IN_LONG - 2 * PyLong_SHIFT)
|
||||
if size == 0:
|
||||
value[0] = 0
|
||||
err[0] = 0
|
@ -1,22 +0,0 @@
|
||||
diff --git a/src/sage/schemes/toric/sheaf/klyachko.py b/src/sage/schemes/toric/sheaf/klyachko.py
|
||||
index b1304a16913..77fae4b7545 100644
|
||||
--- a/src/sage/schemes/toric/sheaf/klyachko.py
|
||||
+++ b/src/sage/schemes/toric/sheaf/klyachko.py
|
||||
@@ -26,7 +26,7 @@
|
||||
(0, 0, 18, 16, 1)
|
||||
sage: Gtilde = G_sum.random_deformation()
|
||||
sage: V = Gtilde.wedge(2) * K # long time
|
||||
- sage: V.cohomology(dim=True, weight=(0,0,0,0)) # long time
|
||||
+ sage: V.cohomology(dim=True, weight=(0,0,0,0)) # long time # random failure (see #32773)
|
||||
(0, 0, 3, 0, 0)
|
||||
|
||||
REFERENCES:
|
||||
@@ -948,7 +948,7 @@ def random_deformation(self, epsilon=None):
|
||||
sage: V.cohomology(dim=True, weight=(0,))
|
||||
(1, 0)
|
||||
sage: Vtilde = V.random_deformation()
|
||||
- sage: Vtilde.cohomology(dim=True, weight=(0,))
|
||||
+ sage: Vtilde.cohomology(dim=True, weight=(0,)) # random failure (see #32773)
|
||||
(1, 0)
|
||||
"""
|
||||
filt = self._filt.random_deformation(epsilon)
|
@ -1,62 +0,0 @@
|
||||
From 9ac7840134054155545e24fa3e66402d42b91c0f Mon Sep 17 00:00:00 2001
|
||||
From: Antonio Rojas <arojas@archlinux.org>
|
||||
Date: Fri, 20 Jan 2023 21:36:27 +0100
|
||||
Subject: [PATCH] Fix tests with giac 1.9.0.35
|
||||
|
||||
---
|
||||
src/sage/libs/giac/giac.pyx | 3 +--
|
||||
src/sage/symbolic/relation.py | 15 +++++----------
|
||||
2 files changed, 6 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/src/sage/libs/giac/giac.pyx b/src/sage/libs/giac/giac.pyx
|
||||
index 4e451dba5e7..ccad5169836 100644
|
||||
--- a/src/sage/libs/giac/giac.pyx
|
||||
+++ b/src/sage/libs/giac/giac.pyx
|
||||
@@ -374,8 +374,7 @@ def _giac(s):
|
||||
|
||||
sage: x = libgiac('x')
|
||||
sage: (1+2*sin(3*x)).solve(x).simplify()
|
||||
- Warning, argument is not an equation, solving 1+2*sin(3*x)=0
|
||||
- list[-pi/18,7*pi/18]
|
||||
+ ...list[-pi/18,7*pi/18]
|
||||
|
||||
sage: libgiac.solve('sin(3*x)>2*sin(x)',x)
|
||||
Traceback (most recent call last):
|
||||
diff --git a/src/sage/symbolic/relation.py b/src/sage/symbolic/relation.py
|
||||
index e9dbc0fea30..b8896a94be9 100644
|
||||
--- a/src/sage/symbolic/relation.py
|
||||
+++ b/src/sage/symbolic/relation.py
|
||||
@@ -935,8 +935,7 @@ def solve(f, *args, **kwds):
|
||||
|
||||
sage: f = (sin(x) - 8*cos(x)*sin(x))*(sin(x)^2 + cos(x)) - (2*cos(x)*sin(x) - sin(x))*(-2*sin(x)^2 + 2*cos(x)^2 - cos(x))
|
||||
sage: solve(f, x, algorithm='giac')
|
||||
- ...
|
||||
- [-2*arctan(sqrt(2)), 0, 2*arctan(sqrt(2)), pi]
|
||||
+ ...[-2*arctan(sqrt(2)), 0, 2*arctan(sqrt(2)), pi]
|
||||
|
||||
sage: x, y = SR.var('x,y')
|
||||
sage: solve([x+y-4,x*y-3],[x,y],algorithm='giac')
|
||||
@@ -1440,19 +1439,15 @@ def _giac_solver(f, x, solution_dict=False):
|
||||
EXAMPLES::
|
||||
|
||||
sage: solve([(2/3)^x-2], [x], algorithm='giac')
|
||||
- ...
|
||||
- [[-log(2)/(log(3) - log(2))]]
|
||||
+ ...[[-log(2)/(log(3) - log(2))]]
|
||||
sage: solve([(2/3)^x-2], [x], algorithm='giac', solution_dict=True)
|
||||
- ...
|
||||
- [{x: -log(2)/(log(3) - log(2))}]
|
||||
+ ...[{x: -log(2)/(log(3) - log(2))}]
|
||||
|
||||
sage: f = (sin(x) - 8*cos(x)*sin(x))*(sin(x)^2 + cos(x)) - (2*cos(x)*sin(x) - sin(x))*(-2*sin(x)^2 + 2*cos(x)^2 - cos(x))
|
||||
sage: solve(f, x, algorithm='giac')
|
||||
- ...
|
||||
- [-2*arctan(sqrt(2)), 0, 2*arctan(sqrt(2)), pi]
|
||||
+ ...[-2*arctan(sqrt(2)), 0, 2*arctan(sqrt(2)), pi]
|
||||
sage: solve(f, x, algorithm='giac', solution_dict=True)
|
||||
- ...
|
||||
- [{x: -2*arctan(sqrt(2))}, {x: 0}, {x: 2*arctan(sqrt(2))}, {x: pi}]
|
||||
+ ...[{x: -2*arctan(sqrt(2))}, {x: 0}, {x: 2*arctan(sqrt(2))}, {x: pi}]
|
||||
|
||||
sage: x, y = SR.var('x,y')
|
||||
sage: solve([x+y-7,x*y-10],[x,y],algorithm='giac')
|
File diff suppressed because it is too large
Load Diff
@ -1,15 +0,0 @@
|
||||
diff --git a/src/sage/data_structures/stream.py b/src/sage/data_structures/stream.py
|
||||
index f8f6dc6a186..002e925f02f 100644
|
||||
--- a/src/sage/data_structures/stream.py
|
||||
+++ b/src/sage/data_structures/stream.py
|
||||
@@ -2090,8 +2090,8 @@ def compute_product(self, n, la):
|
||||
sage: f = Stream_exact([1]) # irrelevant for this test
|
||||
sage: g = Stream_function(lambda n: s[n], True, 0)
|
||||
sage: h = Stream_plethysm(f, g, True, p)
|
||||
- sage: B = p[2, 2, 1](sum(s[i] for i in range(7)))
|
||||
- sage: all(h.compute_product(k, Partition([2, 2, 1])) == B.restrict_degree(k) for k in range(7))
|
||||
+ sage: B = p[2, 2, 1](sum(p(s[i]) for i in range(7))) # long time
|
||||
+ sage: all(h.compute_product(k, Partition([2, 2, 1])) == B.restrict_degree(k) for k in range(7)) # long time
|
||||
True
|
||||
"""
|
||||
# This is the approximate order of the result
|
@ -1,95 +0,0 @@
|
||||
diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx
|
||||
index b77c69b2f77..0586a96ae55 100644
|
||||
--- a/src/sage/plot/complex_plot.pyx
|
||||
+++ b/src/sage/plot/complex_plot.pyx
|
||||
@@ -563,7 +563,7 @@ def complex_to_cmap_rgb(z_values, cmap='turbo', contoured=False, tiled=False,
|
||||
import matplotlib as mpl
|
||||
|
||||
if isinstance(cmap, str):
|
||||
- cmap = mpl.cm.get_cmap(cmap)
|
||||
+ cmap = mpl.colormaps[cmap]
|
||||
|
||||
if contour_base is None:
|
||||
if contour_type == "linear":
|
||||
@@ -1206,11 +1206,11 @@ def complex_plot(f, x_range, y_range, contoured=False, tiled=False, cmap=None,
|
||||
domain = np.linspace(0, 1, 256)
|
||||
shifted_domain = np.roll(domain, 128)
|
||||
default_cmap = mpl.colors.LinearSegmentedColormap.from_list(
|
||||
- "sage_default", mpl.cm.get_cmap('hsv')(shifted_domain)
|
||||
+ "sage_default", mpl.colormaps['hsv'](shifted_domain)
|
||||
)
|
||||
cmap = default_cmap
|
||||
else:
|
||||
- cmap = mpl.cm.get_cmap(cmap)
|
||||
+ cmap = mpl.colormaps[cmap]
|
||||
rgbs = complex_to_cmap_rgb(
|
||||
z_values, cmap=cmap, contoured=contoured, tiled=tiled,
|
||||
contour_type=contour_type, contour_base=contour_base,
|
||||
diff --git a/src/sage/plot/contour_plot.py b/src/sage/plot/contour_plot.py
|
||||
index c0cab456686..4accb309580 100644
|
||||
--- a/src/sage/plot/contour_plot.py
|
||||
+++ b/src/sage/plot/contour_plot.py
|
||||
@@ -848,9 +848,7 @@ def f(x,y): return cos(x) + sin(y)
|
||||
|
||||
sage: contour_plot(lambda x,y: 0, (-1,1), (-1,1),
|
||||
....: contours=[0], fill=False, cmap=['blue'])
|
||||
- ...
|
||||
- UserWarning: No contour levels were found within the data range.
|
||||
- Graphics object consisting of 1 graphics primitive
|
||||
+ ...Graphics object consisting of 1 graphics primitive
|
||||
|
||||
.. PLOT::
|
||||
|
||||
@@ -874,8 +872,7 @@ def f(x,y): return cos(x) + sin(y)
|
||||
Check that :trac:`18074` is fixed::
|
||||
|
||||
sage: contour_plot(0, (0,1), (0,1))
|
||||
- ... UserWarning: No contour levels were found within the data range.
|
||||
- Graphics object consisting of 1 graphics primitive
|
||||
+ ...Graphics object consisting of 1 graphics primitive
|
||||
|
||||
Domain points in :trac:`11648` with complex output are now skipped::
|
||||
|
||||
diff --git a/src/sage/plot/graphics.py b/src/sage/plot/graphics.py
|
||||
index 64ea1a7e10f..cdc99ced263 100644
|
||||
--- a/src/sage/plot/graphics.py
|
||||
+++ b/src/sage/plot/graphics.py
|
||||
@@ -2341,7 +2341,7 @@ def _matplotlib_tick_formatter(self, subplot, base=(10, 10),
|
||||
sage: subplot = Figure().add_subplot(111)
|
||||
sage: p._objects[0]._render_on_subplot(subplot)
|
||||
sage: p._matplotlib_tick_formatter(subplot, **d)
|
||||
- (<AxesSubplot:...>,
|
||||
+ (<Axes...>,
|
||||
<matplotlib.ticker.MaxNLocator object at ...>,
|
||||
<matplotlib.ticker.MaxNLocator object at ...>,
|
||||
<matplotlib.ticker.ScalarFormatter object at ...>,
|
||||
diff --git a/src/sage/plot/multigraphics.py b/src/sage/plot/multigraphics.py
|
||||
index 99c817f03a6..ae85183dc93 100644
|
||||
--- a/src/sage/plot/multigraphics.py
|
||||
+++ b/src/sage/plot/multigraphics.py
|
||||
@@ -1207,7 +1207,7 @@ def _add_subplot(self, figure, index, **options):
|
||||
sage: fig = Figure()
|
||||
sage: ax1 = G._add_subplot(fig, 0)
|
||||
sage: type(ax1)
|
||||
- <class 'matplotlib.axes._subplots.AxesSubplot'>
|
||||
+ <class 'matplotlib.axes...'>
|
||||
sage: ax2 = G._add_subplot(fig, 1)
|
||||
sage: fig.get_axes() == [ax1, ax2]
|
||||
True
|
||||
diff --git a/src/sage/plot/plot3d/plot_field3d.py b/src/sage/plot/plot3d/plot_field3d.py
|
||||
index bdf39391d3e..fe10e27f58f 100644
|
||||
--- a/src/sage/plot/plot3d/plot_field3d.py
|
||||
+++ b/src/sage/plot/plot3d/plot_field3d.py
|
||||
@@ -126,9 +126,9 @@ def plot_vector_field3d(functions, xrange, yrange, zrange,
|
||||
vectors = [vector((ff(*point), gg(*point), hh(*point))) for point in points]
|
||||
|
||||
try:
|
||||
- from matplotlib.cm import get_cmap
|
||||
- cm = get_cmap(colors)
|
||||
- except (TypeError, ValueError):
|
||||
+ import matplotlib as mpl
|
||||
+ cm = mpl.colormaps[colors]
|
||||
+ except (TypeError, KeyError):
|
||||
cm = None
|
||||
if cm is None:
|
||||
if isinstance(colors, (list, tuple)):
|
@ -1,56 +0,0 @@
|
||||
diff --git a/src/sage/interfaces/maxima_lib.py b/src/sage/interfaces/maxima_lib.py
|
||||
index c9ca5e30939..9459cb70334 100644
|
||||
--- a/src/sage/interfaces/maxima_lib.py
|
||||
+++ b/src/sage/interfaces/maxima_lib.py
|
||||
@@ -77,6 +77,26 @@
|
||||
sage: bar == foo
|
||||
True
|
||||
|
||||
+TESTS:
|
||||
+
|
||||
+Check our workaround for a race in ecl works, see :trac:`26968`.
|
||||
+We use a temporary `MAXIMA_USERDIR` so it's empty; we place it
|
||||
+in `DOT_SAGE` since we expect it to have more latency than `/tmp`.
|
||||
+
|
||||
+ sage: import tempfile, subprocess
|
||||
+ sage: tmpdir = tempfile.TemporaryDirectory(dir=DOT_SAGE)
|
||||
+ sage: _ = subprocess.run(['sage', '-c', # long time
|
||||
+ ....: f'''
|
||||
+ ....: import os
|
||||
+ ....: os.environ["MAXIMA_USERDIR"] = "{tmpdir.name}"
|
||||
+ ....: if not os.fork():
|
||||
+ ....: import sage.interfaces.maxima_lib
|
||||
+ ....: else:
|
||||
+ ....: import sage.interfaces.maxima_lib
|
||||
+ ....: os.wait()
|
||||
+ ....: '''])
|
||||
+ sage: tmpdir.cleanup()
|
||||
+
|
||||
"""
|
||||
|
||||
# ****************************************************************************
|
||||
@@ -116,7 +136,23 @@
|
||||
ecl_eval("(setq $nolabels t))")
|
||||
ecl_eval("(defvar *MAXIMA-LANG-SUBDIR* NIL)")
|
||||
ecl_eval("(set-locale-subdir)")
|
||||
-ecl_eval("(set-pathnames)")
|
||||
+
|
||||
+try:
|
||||
+ ecl_eval("(set-pathnames)")
|
||||
+except RuntimeError:
|
||||
+ # Recover from :trac:`26968` by creating `*maxima-objdir*` here.
|
||||
+ # This cannot be done before calling `(set-pathnames)` since
|
||||
+ # `*maxima-objdir*` is computed there.
|
||||
+ # We use python `os.makedirs()` which is immune to the race.
|
||||
+ # Using `(ensure-directories-exist ...)` in lisp would be
|
||||
+ # subject to the same race condition and since `*maxima-objdir*`
|
||||
+ # has multiple components this is quite plausible to happen.
|
||||
+ maxima_objdir = ecl_eval("*maxima-objdir*").python()[1:-1]
|
||||
+ import os
|
||||
+ os.makedirs(maxima_objdir, exist_ok=True)
|
||||
+ # Call `(set-pathnames)` again to complete its job.
|
||||
+ ecl_eval("(set-pathnames)")
|
||||
+
|
||||
ecl_eval("(defun add-lineinfo (x) x)")
|
||||
ecl_eval('(defun principal nil (cond ($noprincipal (diverg)) ((not pcprntd) (merror "Divergent Integral"))))')
|
||||
ecl_eval("(remprop 'mfactorial 'grind)") # don't use ! for factorials (#11539)
|
@ -1,28 +0,0 @@
|
||||
diff --git a/src/bin/sage-cleaner b/src/bin/sage-cleaner
|
||||
index e2e578eec60..dc7d8f0482e 100755
|
||||
--- a/src/bin/sage-cleaner
|
||||
+++ b/src/bin/sage-cleaner
|
||||
@@ -99,6 +99,15 @@ def cleanup():
|
||||
|
||||
return len(pid_list)
|
||||
|
||||
+def cleanup_cruft():
|
||||
+ """ remove directories leftover from improper shutdown """
|
||||
+ tmp_dirs = os.listdir(SAGE_TMP_ROOT)
|
||||
+ for dir_entry in tmp_dirs:
|
||||
+ baddir = os.path.join(SAGE_TMP_ROOT, dir_entry)
|
||||
+ if os.path.isdir(baddir):
|
||||
+ logger.warning('Removing old directory %s from SAGE_TMP_ROOT', baddir)
|
||||
+ rm_rf(baddir)
|
||||
+
|
||||
def kill_spawned_jobs(jobfile, parent_pid):
|
||||
logger.info("Killing %s's spawned jobs", parent_pid)
|
||||
killed_them_all = True
|
||||
@@ -193,6 +202,7 @@ if __name__ == '__main__':
|
||||
setup_daemon()
|
||||
fix_old_mistakes()
|
||||
logger.info("Starting sage-cleaner with PID %s", os.getpid())
|
||||
+ cleanup_cruft()
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
wait = int(sys.argv[1])
|
@ -1,35 +0,0 @@
|
||||
diff --git a/src/sage/graphs/generators/families.py b/src/sage/graphs/generators/families.py
|
||||
index ec6a5c19e60..9dd7bc1cb1e 100644
|
||||
--- a/src/sage/graphs/generators/families.py
|
||||
+++ b/src/sage/graphs/generators/families.py
|
||||
@@ -3660,7 +3660,7 @@ def nauty_gentreeg(options="", debug=False):
|
||||
|
||||
sage: gen = graphs.nauty_gentreeg("4", debug=True)
|
||||
sage: print(next(gen))
|
||||
- >A ...gentreeg Z=2:3 D=3 n=4
|
||||
+ >A ...gentreeg ...
|
||||
sage: gen = graphs.nauty_gentreeg("4 -q", debug=True)
|
||||
sage: next(gen)
|
||||
''
|
||||
@@ -3687,7 +3687,7 @@ def nauty_gentreeg(options="", debug=False):
|
||||
sage: list(graphs.nauty_gentreeg("3 -x", debug=True))
|
||||
['>E Usage: ...gentreeg [-D#] [-Z#:#] [-ulps] [-q] n [res/mod] ...
|
||||
sage: list(graphs.nauty_gentreeg("3", debug=True))
|
||||
- ['>A ...gentreeg Z=2:2 D=2 n=3\n', Graph on 3 vertices]
|
||||
+ ['>A ...gentreeg ...\n', Graph on 3 vertices]
|
||||
"""
|
||||
import shlex
|
||||
from sage.features.nauty import NautyExecutable
|
||||
diff --git a/src/sage/graphs/graph_generators.py b/src/sage/graphs/graph_generators.py
|
||||
index df88bbe2713..1a8016976c2 100644
|
||||
--- a/src/sage/graphs/graph_generators.py
|
||||
+++ b/src/sage/graphs/graph_generators.py
|
||||
@@ -966,7 +966,7 @@ def nauty_geng(self, options="", debug=False):
|
||||
...
|
||||
ValueError: wrong format of parameter option
|
||||
sage: list(graphs.nauty_geng("-c3", debug=True))
|
||||
- ['>E Usage: ...geng [-cCmtfbd#D#] [-uygsnh] [-lvq] ...
|
||||
+ ['>E Usage: ...geng ...\n']
|
||||
sage: list(graphs.nauty_geng("-c 3", debug=True))
|
||||
['>A ...geng -cd1D2 n=3 e=2-3\n', Graph on 3 vertices, Graph on 3 vertices]
|
||||
"""
|
@ -1,51 +0,0 @@
|
||||
diff --git a/src/sage/repl/inputhook.py b/src/sage/repl/inputhook.py
|
||||
index da5df0268c0..7f7894f6dcf 100644
|
||||
--- a/src/sage/repl/inputhook.py
|
||||
+++ b/src/sage/repl/inputhook.py
|
||||
@@ -17,6 +17,8 @@
|
||||
|
||||
import select
|
||||
import errno
|
||||
+import contextlib
|
||||
+import io
|
||||
|
||||
from IPython import get_ipython
|
||||
from IPython.terminal.pt_inputhooks import register
|
||||
@@ -47,15 +49,27 @@ def install():
|
||||
"""
|
||||
Install the Sage input hook
|
||||
|
||||
- EXAMPLES::
|
||||
+ EXAMPLES:
|
||||
+
|
||||
+ Make sure ipython is running so we really test this function::
|
||||
+
|
||||
+ sage: from sage.repl.interpreter import get_test_shell
|
||||
+ sage: get_test_shell()
|
||||
+ <sage.repl.interpreter.SageTestShell object at ...>
|
||||
+
|
||||
+ Run the function twice, to check it is idempotent (see :trac:`35235`)::
|
||||
|
||||
sage: from sage.repl.inputhook import install
|
||||
sage: install()
|
||||
+ sage: install()
|
||||
"""
|
||||
ip = get_ipython()
|
||||
if not ip:
|
||||
return # Not running in ipython, e.g. doctests
|
||||
- ip.enable_gui('sage')
|
||||
+ if ip._inputhook != sage_inputhook:
|
||||
+ # silence `ip.enable_gui()` useless output
|
||||
+ with contextlib.redirect_stdout(io.StringIO()):
|
||||
+ ip.enable_gui('sage')
|
||||
|
||||
|
||||
def uninstall():
|
||||
@@ -71,4 +85,6 @@ def uninstall():
|
||||
if not ip:
|
||||
return
|
||||
if ip._inputhook == sage_inputhook:
|
||||
- ip.enable_gui(None)
|
||||
+ # silence `ip.enable_gui()` useless output
|
||||
+ with contextlib.redirect_stdout(io.StringIO()):
|
||||
+ ip.enable_gui(None)
|
@ -1,41 +0,0 @@
|
||||
From 532fbbaf71bb41c73920b584108eb2a09d6deeb1 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Gonzalo=20Tornar=C3=ADa?= <tornaria@cmat.edu.uy>
|
||||
Date: Tue, 4 Apr 2023 12:56:57 -0300
|
||||
Subject: [PATCH] Ignore deprecation warnings triggered by pythran 0.12.1
|
||||
|
||||
These happen with python 3.11, setuptools 67.6.1, numpy 1.24.2.
|
||||
When pythran 0.12.1 is installed, I get 24 doctest failures due to
|
||||
deprecation warnings; they are all gone with this commit.
|
||||
|
||||
[backported from 839a6e928c264a9863bd42860c78ae95a6d9f3e0]
|
||||
---
|
||||
src/sage/all.py | 12 ++++++++++--
|
||||
1 file changed, 10 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/src/sage/all.py b/src/sage/all.py
|
||||
index 93588df1b93..ee775aad0e9 100644
|
||||
--- a/src/sage/all.py
|
||||
+++ b/src/sage/all.py
|
||||
@@ -96,9 +96,17 @@ warnings.filterwarnings('ignore', category=DeprecationWarning,
|
||||
warnings.filterwarnings('ignore', category=DeprecationWarning,
|
||||
module='(.*[.]_vendor[.])?packaging')
|
||||
|
||||
-# Ignore numpy warnings triggered by pythran
|
||||
+# Ignore a few warnings triggered by pythran 0.12.1
|
||||
warnings.filterwarnings('ignore', category=DeprecationWarning,
|
||||
- module='pythran')
|
||||
+ message='\n\n `numpy.distutils` is deprecated since NumPy 1.23.0',
|
||||
+ module='pythran.dist')
|
||||
+warnings.filterwarnings('ignore', category=DeprecationWarning,
|
||||
+ message='pkg_resources is deprecated as an API|'
|
||||
+ 'Deprecated call to `pkg_resources.declare_namespace(.*)`',
|
||||
+ module='pkg_resources')
|
||||
+warnings.filterwarnings('ignore', category=DeprecationWarning,
|
||||
+ message='msvccompiler is deprecated and slated to be removed',
|
||||
+ module='distutils.msvccompiler')
|
||||
|
||||
warnings.filterwarnings('ignore', category=DeprecationWarning,
|
||||
message='The distutils(.sysconfig module| package) is deprecated',
|
||||
--
|
||||
2.40.0
|
||||
|
@ -1,8 +1,8 @@
|
||||
diff --git a/src/sage/graphs/graph.py b/src/sage/graphs/graph.py
|
||||
index c2e42bcbd3..b6a10efbf4 100644
|
||||
index c2e42bcbd38..0d13f071dc4 100644
|
||||
--- a/src/sage/graphs/graph.py
|
||||
+++ b/src/sage/graphs/graph.py
|
||||
@@ -6786,13 +6786,21 @@ def cliques_number_of(self, vertices=None, cliques=None):
|
||||
@@ -6786,13 +6786,26 @@ def cliques_number_of(self, vertices=None, cliques=None):
|
||||
{(0, 0): 2, (0, 1): 3, (0, 2): 2, (1, 0): 2, (1, 1): 3, (1, 2): 2}
|
||||
sage: F.cliques_number_of(vertices=[(0, 1), (1, 2)])
|
||||
{(0, 1): 3, (1, 2): 2}
|
||||
@ -18,15 +18,20 @@ index c2e42bcbd3..b6a10efbf4 100644
|
||||
+ if cliques is None:
|
||||
+ cliques = self.cliques_maximal()
|
||||
+
|
||||
+ if vertices in self: # single vertex
|
||||
+ if vertices in self: # single vertex
|
||||
+ return sum(1 for c in cliques if vertices in c)
|
||||
+ else:
|
||||
+ return { v : sum(1 for c in cliques if v in c)
|
||||
+ for v in vertices or self }
|
||||
+
|
||||
+ from collections import Counter
|
||||
+ count = Counter()
|
||||
+
|
||||
+ for c in cliques:
|
||||
+ count.update(c)
|
||||
+
|
||||
+ return {v : count[v] for v in vertices or self}
|
||||
|
||||
@doc_index("Clique-related methods")
|
||||
def cliques_get_max_clique_graph(self):
|
||||
@@ -7493,17 +7501,32 @@ def cliques_containing_vertex(self, vertices=None, cliques=None):
|
||||
@@ -7493,17 +7506,32 @@ def cliques_containing_vertex(self, vertices=None, cliques=None):
|
||||
|
||||
sage: C = Graph('DJ{')
|
||||
sage: C.cliques_containing_vertex()
|
||||
@ -62,7 +67,7 @@ index c2e42bcbd3..b6a10efbf4 100644
|
||||
|
||||
Since each clique of a 2 dimensional grid corresponds to an edge, the
|
||||
number of cliques in which a vertex is involved equals its degree::
|
||||
@@ -7518,8 +7541,14 @@ def cliques_containing_vertex(self, vertices=None, cliques=None):
|
||||
@@ -7518,8 +7546,20 @@ def cliques_containing_vertex(self, vertices=None, cliques=None):
|
||||
sage: sorted(sorted(x for x in L) for L in d[(0, 1)])
|
||||
[[(0, 0), (0, 1)], [(0, 1), (0, 2)], [(0, 1), (1, 1)]]
|
||||
"""
|
||||
@ -71,11 +76,17 @@ index c2e42bcbd3..b6a10efbf4 100644
|
||||
+ if cliques is None:
|
||||
+ cliques = self.cliques_maximal()
|
||||
+
|
||||
+ if vertices in self: # single vertex
|
||||
+ if vertices in self: # single vertex
|
||||
+ return [c for c in cliques if vertices in c]
|
||||
+ else:
|
||||
+ return { v : [c for c in cliques if v in c]
|
||||
+ for v in vertices or self }
|
||||
+
|
||||
+ from collections import defaultdict
|
||||
+ d = defaultdict(list)
|
||||
+
|
||||
+ for c in cliques:
|
||||
+ for v in c:
|
||||
+ d[v].append(c)
|
||||
+
|
||||
+ return {v : d[v] for v in vertices or self}
|
||||
|
||||
@doc_index("Clique-related methods")
|
||||
def clique_complex(self):
|
||||
|
64
srcpkgs/sagemath/patches/35612-linbox_1.7.0.patch
Normal file
64
srcpkgs/sagemath/patches/35612-linbox_1.7.0.patch
Normal file
@ -0,0 +1,64 @@
|
||||
diff --git a/src/sage/libs/linbox/conversion.pxd b/src/sage/libs/linbox/conversion.pxd
|
||||
index 7794c9edc39..1753277b1f1 100644
|
||||
--- a/src/sage/libs/linbox/conversion.pxd
|
||||
+++ b/src/sage/libs/linbox/conversion.pxd
|
||||
@@ -177,9 +177,8 @@ cdef inline Vector_integer_dense new_sage_vector_integer_dense(P, DenseVector_in
|
||||
- v -- linbox vector
|
||||
"""
|
||||
cdef Vector_integer_dense res = P()
|
||||
- cdef cppvector[Integer] * vec = &v.refRep()
|
||||
cdef size_t i
|
||||
for i in range(<size_t> res._degree):
|
||||
- mpz_set(res._entries[i], vec[0][i].get_mpz_const())
|
||||
+ mpz_set(res._entries[i], v.getEntry(i).get_mpz_const())
|
||||
|
||||
return res
|
||||
diff --git a/src/sage/libs/linbox/linbox.pxd b/src/sage/libs/linbox/linbox.pxd
|
||||
index 9112d151f8b..bfeda4b6042 100644
|
||||
--- a/src/sage/libs/linbox/linbox.pxd
|
||||
+++ b/src/sage/libs/linbox/linbox.pxd
|
||||
@@ -32,7 +32,6 @@ cdef extern from "linbox/matrix/dense-matrix.h":
|
||||
ctypedef Modular_double Field
|
||||
ctypedef double Element
|
||||
DenseMatrix_Modular_double(Field F, size_t m, size_t n)
|
||||
- DenseMatrix_Modular_double(Field F, Element*, size_t m, size_t n)
|
||||
void setEntry(size_t i, size_t j, Element& a)
|
||||
Element &getEntry(size_t i, size_t j)
|
||||
|
||||
@@ -42,7 +41,6 @@ cdef extern from "linbox/matrix/dense-matrix.h":
|
||||
ctypedef Modular_float Field
|
||||
ctypedef float Element
|
||||
DenseMatrix_Modular_float(Field F, size_t m, size_t n)
|
||||
- DenseMatrix_Modular_float(Field F, Element*, size_t m, size_t n)
|
||||
void setEntry(size_t i, size_t j, Element& a)
|
||||
Element &getEntry(size_t i, size_t j)
|
||||
|
||||
@@ -101,7 +99,6 @@ cdef extern from "linbox/vector/vector.h":
|
||||
DenseVector_integer (Field &F)
|
||||
DenseVector_integer (Field &F, long& m)
|
||||
DenseVector_integer (Field &F, cppvector[Integer]&)
|
||||
- cppvector[Element]& refRep()
|
||||
size_t size()
|
||||
void resize(size_t)
|
||||
void resize(size_t n, const Element&)
|
||||
diff --git a/src/sage/matrix/matrix_modn_dense_template.pxi b/src/sage/matrix/matrix_modn_dense_template.pxi
|
||||
index abf29badce6..68b869ce314 100644
|
||||
--- a/src/sage/matrix/matrix_modn_dense_template.pxi
|
||||
+++ b/src/sage/matrix/matrix_modn_dense_template.pxi
|
||||
@@ -221,9 +221,14 @@ cdef inline linbox_echelonize_efd(celement modulus, celement* entries, Py_ssize_
|
||||
return 0,[]
|
||||
|
||||
cdef ModField *F = new ModField(<long>modulus)
|
||||
- cdef DenseMatrix *A = new DenseMatrix(F[0], <ModField.Element*>entries,<Py_ssize_t>nrows, <Py_ssize_t>ncols)
|
||||
- cdef Py_ssize_t r = reducedRowEchelonize(A[0])
|
||||
+ cdef DenseMatrix *A = new DenseMatrix(F[0], nrows, ncols)
|
||||
+
|
||||
cdef Py_ssize_t i,j
|
||||
+ for i in range(nrows):
|
||||
+ for j in range(ncols):
|
||||
+ A.setEntry(i, j, entries[i*ncols+j])
|
||||
+
|
||||
+ cdef Py_ssize_t r = reducedRowEchelonize(A[0])
|
||||
for i in range(nrows):
|
||||
for j in range(ncols):
|
||||
entries[i*ncols+j] = <celement>A.getEntry(i,j)
|
569
srcpkgs/sagemath/patches/35619-maxima_5.46.0.patch
Normal file
569
srcpkgs/sagemath/patches/35619-maxima_5.46.0.patch
Normal file
@ -0,0 +1,569 @@
|
||||
diff --git a/build/pkgs/ecl/dependencies b/build/pkgs/ecl/dependencies
|
||||
index cda6316bf5a..51a953403e9 100644
|
||||
--- a/build/pkgs/ecl/dependencies
|
||||
+++ b/build/pkgs/ecl/dependencies
|
||||
@@ -1,4 +1,4 @@
|
||||
-$(MP_LIBRARY) readline gc libffi
|
||||
+$(MP_LIBRARY) readline gc libffi info
|
||||
|
||||
----------
|
||||
All lines of this file are ignored except the first.
|
||||
diff --git a/build/pkgs/ecl/spkg-configure.m4 b/build/pkgs/ecl/spkg-configure.m4
|
||||
index ae1e0ac5e1a..7dbcfa6377b 100644
|
||||
--- a/build/pkgs/ecl/spkg-configure.m4
|
||||
+++ b/build/pkgs/ecl/spkg-configure.m4
|
||||
@@ -35,10 +35,7 @@ SAGE_SPKG_CONFIGURE([ecl], [
|
||||
AC_SUBST(SAGE_ECL_CONFIG, [$ECL_CONFIG])
|
||||
fi
|
||||
|
||||
- # Maxima cannot yet be provided by the system, so we always use
|
||||
+ # Kenzo cannot yet be provided by the system, so we always use
|
||||
# the SAGE_LOCAL path for now.
|
||||
- AC_SUBST(SAGE_MAXIMA_FAS, ['${prefix}'/lib/ecl/maxima.fas])
|
||||
-
|
||||
- # Likewise for the optional Kenzo SPKG
|
||||
AC_SUBST(SAGE_KENZO_FAS, ['${prefix}'/lib/ecl/kenzo.fas])
|
||||
])
|
||||
diff --git a/build/pkgs/ecl/spkg-install.in b/build/pkgs/ecl/spkg-install.in
|
||||
index ee1667aec16..72083337942 100644
|
||||
--- a/build/pkgs/ecl/spkg-install.in
|
||||
+++ b/build/pkgs/ecl/spkg-install.in
|
||||
@@ -31,18 +31,6 @@ cp "$SAGE_ROOT"/config/config.* src
|
||||
|
||||
if [ x"$SAGE_SPKG_INSTALL_DOCS" != xyes ] ; then
|
||||
ECL_CONFIGURE="$ECL_CONFIGURE --enable-manual=no"
|
||||
-else
|
||||
- # ECL 2020 needs modern makeinfo
|
||||
- command -v texi2any >/dev/null 2>&1
|
||||
- if [ $? -ne 0 ]; then # texi2any not found -> makeinfo too old, if present
|
||||
- ECL_CONFIGURE="$ECL_CONFIGURE --enable-manual=no"
|
||||
- else
|
||||
- if makeinfo -c foo 2>&1 | grep -q invalid; then
|
||||
- # makeinfo found but does not support all options that ecl
|
||||
- # likes to use
|
||||
- ECL_CONFIGURE="$ECL_CONFIGURE --enable-manual=no"
|
||||
- fi
|
||||
- fi
|
||||
fi
|
||||
|
||||
sdh_configure $SAGE_CONFIGURE_GMP \
|
||||
diff --git a/build/pkgs/giac/spkg-configure.m4 b/build/pkgs/giac/spkg-configure.m4
|
||||
index 5859e35f12e..b677184b7be 100644
|
||||
--- a/build/pkgs/giac/spkg-configure.m4
|
||||
+++ b/build/pkgs/giac/spkg-configure.m4
|
||||
@@ -5,7 +5,7 @@ SAGE_SPKG_CONFIGURE([giac], [
|
||||
m4_pushdef([GIAC_MAX_VERSION], [1.9.999])
|
||||
AC_CACHE_CHECK([for giac >= ]GIAC_MIN_VERSION[, <= ]GIAC_MAX_VERSION, [ac_cv_path_GIAC], [
|
||||
AC_PATH_PROGS_FEATURE_CHECK([GIAC], [giac], [
|
||||
- giac_version=$($ac_path_GIAC --version 2> /dev/null | tail -1)
|
||||
+ giac_version=$($ac_path_GIAC --version 2> /dev/null | tail -n -1)
|
||||
AS_IF([test -n "$giac_version"], [
|
||||
AX_COMPARE_VERSION([$giac_version], [ge], GIAC_MIN_VERSION, [
|
||||
AX_COMPARE_VERSION([$giac_version], [le], GIAC_MAX_VERSION, [
|
||||
diff --git a/build/pkgs/info/spkg-configure.m4 b/build/pkgs/info/spkg-configure.m4
|
||||
index 0980a4b8ef8..85fe1ea4731 100644
|
||||
--- a/build/pkgs/info/spkg-configure.m4
|
||||
+++ b/build/pkgs/info/spkg-configure.m4
|
||||
@@ -1,4 +1,14 @@
|
||||
SAGE_SPKG_CONFIGURE([info], [
|
||||
AC_PATH_PROG(INFO, info)
|
||||
- AS_IF([test -z "${INFO}"], [sage_spkg_install_info=yes])
|
||||
+ AS_IF([test -z "${INFO}"], [sage_spkg_install_info=yes
|
||||
+ ], [
|
||||
+ dnl very old makeinfo are not texi2any, newer are symlinks to texi2any
|
||||
+ AC_PATH_PROG(TEXI2ANY, texi2any)
|
||||
+ AS_IF([test -z "${TEXI2ANY}"], [sage_spkg_install_info=yes
|
||||
+ ], [
|
||||
+ AS_IF([makeinfo -c foo 2>&1 | grep -q invalid], [
|
||||
+ dnl makeinfo found, but too old, and does not support all options that ecl likes to use
|
||||
+ sage_spkg_install_info=yes])
|
||||
+ ])
|
||||
+ ])
|
||||
])
|
||||
diff --git a/build/pkgs/info/spkg-install.in b/build/pkgs/info/spkg-install.in
|
||||
index 8086e4b2ec8..3ea8c053669 100644
|
||||
--- a/build/pkgs/info/spkg-install.in
|
||||
+++ b/build/pkgs/info/spkg-install.in
|
||||
@@ -1,2 +1,2 @@
|
||||
-cd src/info
|
||||
+cd src
|
||||
sdh_make_install
|
||||
diff --git a/build/pkgs/info/type b/build/pkgs/info/type
|
||||
index 134d9bc32d5..a6a7b9cd726 100644
|
||||
--- a/build/pkgs/info/type
|
||||
+++ b/build/pkgs/info/type
|
||||
@@ -1 +1 @@
|
||||
-optional
|
||||
+standard
|
||||
diff --git a/build/pkgs/maxima/checksums.ini b/build/pkgs/maxima/checksums.ini
|
||||
index a804c7b831f..0f594389fe6 100644
|
||||
--- a/build/pkgs/maxima/checksums.ini
|
||||
+++ b/build/pkgs/maxima/checksums.ini
|
||||
@@ -1,5 +1,5 @@
|
||||
tarball=maxima-VERSION.tar.gz
|
||||
-sha1=ed15d5285794413ba94412079eca3d0fa55a47bf
|
||||
-md5=9b9ae1dace55b1386739dabaa9122e60
|
||||
-cksum=1765409766
|
||||
+sha1=1010594e6d6082bbd8efaac1b7756ec1721a4ed5
|
||||
+md5=3c01f1daa6936e11d8713fef7751d3fe
|
||||
+cksum=2420393096
|
||||
upstream_url=https://sourceforge.net/projects/maxima/files/Maxima-source/VERSION-source/maxima-VERSION.tar.gz/download
|
||||
diff --git a/build/pkgs/maxima/distros/arch.txt b/build/pkgs/maxima/distros/arch.txt
|
||||
index 6400290f44d..6ac052fa62b 100644
|
||||
--- a/build/pkgs/maxima/distros/arch.txt
|
||||
+++ b/build/pkgs/maxima/distros/arch.txt
|
||||
@@ -1 +1 @@
|
||||
-maxima-ecl
|
||||
+maxima-fas
|
||||
diff --git a/build/pkgs/maxima/distros/cygwin.txt b/build/pkgs/maxima/distros/cygwin.txt
|
||||
new file mode 100644
|
||||
index 00000000000..f5fe3fdc6cb
|
||||
--- /dev/null
|
||||
+++ b/build/pkgs/maxima/distros/cygwin.txt
|
||||
@@ -0,0 +1 @@
|
||||
+maxima
|
||||
diff --git a/build/pkgs/maxima/distros/freebsd.txt b/build/pkgs/maxima/distros/freebsd.txt
|
||||
new file mode 100644
|
||||
index 00000000000..766a71b5074
|
||||
--- /dev/null
|
||||
+++ b/build/pkgs/maxima/distros/freebsd.txt
|
||||
@@ -0,0 +1 @@
|
||||
+math/maxima
|
||||
diff --git a/build/pkgs/maxima/distros/gentoo.txt b/build/pkgs/maxima/distros/gentoo.txt
|
||||
new file mode 100644
|
||||
index 00000000000..85fb33f1610
|
||||
--- /dev/null
|
||||
+++ b/build/pkgs/maxima/distros/gentoo.txt
|
||||
@@ -0,0 +1,2 @@
|
||||
+sci-mathematics/maxima[ecls]
|
||||
+
|
||||
diff --git a/build/pkgs/maxima/package-version.txt b/build/pkgs/maxima/package-version.txt
|
||||
index 83476624dc0..5681375f3be 100644
|
||||
--- a/build/pkgs/maxima/package-version.txt
|
||||
+++ b/build/pkgs/maxima/package-version.txt
|
||||
@@ -1 +1 @@
|
||||
-5.45.0.p0
|
||||
+5.46.0
|
||||
diff --git a/build/pkgs/maxima/patches/matrixexp.patch b/build/pkgs/maxima/patches/matrixexp.patch
|
||||
deleted file mode 100644
|
||||
index 5c8527c33bf..00000000000
|
||||
--- a/build/pkgs/maxima/patches/matrixexp.patch
|
||||
+++ /dev/null
|
||||
@@ -1,15 +0,0 @@
|
||||
-diff --git a/share/linearalgebra/matrixexp.lisp b/share/linearalgebra/matrixexp.lisp
|
||||
-index 218bf35..f2fd468 100644
|
||||
---- a/share/linearalgebra/matrixexp.lisp
|
||||
-+++ b/share/linearalgebra/matrixexp.lisp
|
||||
-@@ -138,8 +138,8 @@
|
||||
- (print `(ratvars = ,$ratvars gcd = '$gcd algebraic = ,$algebraic))
|
||||
- (print `(ratfac = ,$ratfac))
|
||||
- (merror "Unable to find the spectrum")))
|
||||
--
|
||||
-- (setq res ($fullratsimp (ncpower (sub (mult z ($ident n)) mat) -1) z))
|
||||
-+
|
||||
-+ (setq res ($fullratsimp ($invert_by_lu (sub (mult z ($ident n)) mat) '$crering) z))
|
||||
- (setq m (length sp))
|
||||
- (dotimes (i m)
|
||||
- (setq zi (nth i sp))
|
||||
diff --git a/build/pkgs/maxima/patches/maxima.system.patch b/build/pkgs/maxima/patches/maxima.system.patch
|
||||
deleted file mode 100644
|
||||
index 74db62e7f9f..00000000000
|
||||
--- a/build/pkgs/maxima/patches/maxima.system.patch
|
||||
+++ /dev/null
|
||||
@@ -1,25 +0,0 @@
|
||||
-diff --git a/src/maxima.system b/src/maxima.system
|
||||
-index 76f2452..cf25f51 100644
|
||||
---- a/src/maxima.system
|
||||
-+++ b/src/maxima.system
|
||||
-@@ -1,5 +1,8 @@
|
||||
- ;;; -*- Lisp -*-
|
||||
-
|
||||
-+(require :cmp)
|
||||
-+(setf c::*compile-in-constants* t)
|
||||
-+
|
||||
- (in-package :cl-user)
|
||||
-
|
||||
- (pushnew :cl *features*)
|
||||
-@@ -75,6 +78,11 @@
|
||||
- ;; Convert dir/foo.fas to dir/foo.o
|
||||
- (make-pathname :type "o" :defaults p))
|
||||
- files)))
|
||||
-+ (c::build-fasl "binary-ecl/maxima" :lisp-files obj
|
||||
-+ :ld-flags
|
||||
-+ (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
|
||||
-+ (find-package "MAXIMA")))))
|
||||
-+ (if (and x (not (string= x ""))) (list x))))
|
||||
- (c::build-program "binary-ecl/maxima" :lisp-files obj
|
||||
- :ld-flags
|
||||
- (let ((x (symbol-value (find-symbol "*AUTOCONF-LD-FLAGS*"
|
||||
diff --git a/build/pkgs/maxima/spkg-configure.m4 b/build/pkgs/maxima/spkg-configure.m4
|
||||
new file mode 100644
|
||||
index 00000000000..dc54525320e
|
||||
--- /dev/null
|
||||
+++ b/build/pkgs/maxima/spkg-configure.m4
|
||||
@@ -0,0 +1,46 @@
|
||||
+SAGE_SPKG_CONFIGURE([maxima], [
|
||||
+ m4_pushdef([SAGE_MAXIMA_MINVER],["5.45.0"])dnl this version and higher allowed
|
||||
+ SAGE_SPKG_DEPCHECK([ecl], [
|
||||
+ dnl First check for the "maxima" executable in the user's PATH, because
|
||||
+ dnl we still use pexpect to communicate with it in a few places.
|
||||
+ AC_CACHE_CHECK([for Maxima >= $SAGE_MAXIMA_MINVER], [ac_cv_path_MAXIMA], [
|
||||
+ AC_PATH_PROGS_FEATURE_CHECK([MAXIMA], [maxima], [
|
||||
+ maxima_version=`$ac_path_MAXIMA --version 2>&1 | tail -n -1\
|
||||
+ | $SED -n -e 's/Maxima *\([[0-9]]*\.[[0-9]]*\.[[0-9]]*\)/\1/p'`
|
||||
+ AS_IF([test -n "$maxima_version"], [
|
||||
+ AX_COMPARE_VERSION([$maxima_version], [ge], [SAGE_MAXIMA_MINVER], [
|
||||
+ ac_cv_path_MAXIMA="$ac_path_MAXIMA"
|
||||
+ ac_path_MAXIMA_found=:
|
||||
+ ])
|
||||
+ ])
|
||||
+ ])
|
||||
+ ])
|
||||
+ SAGE_MAXIMA="$ac_cv_path_MAXIMA"
|
||||
+ AS_IF([test -z "${SAGE_MAXIMA}"], [
|
||||
+ sage_spkg_install_maxima=yes
|
||||
+ ],[
|
||||
+ dnl If we have the executable, check also for the ECL library.
|
||||
+ AC_MSG_CHECKING([if ECL can "require" the maxima module])
|
||||
+ AS_IF([ecl --eval "(require 'maxima)" --eval "(quit)" \
|
||||
+ >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD], [
|
||||
+ AC_MSG_RESULT(yes)
|
||||
+ ], [
|
||||
+ AC_MSG_RESULT(no)
|
||||
+ sage_spkg_install_maxima=yes
|
||||
+ ])
|
||||
+ ])
|
||||
+ ])
|
||||
+ m4_popdef([SAGE_MAXIMA_MINVER])
|
||||
+],[],[],[
|
||||
+ # post-check
|
||||
+ AS_IF([test x$sage_spkg_install_maxima = xyes], [
|
||||
+ dnl Leaving this variable empty will tell sagelib to load
|
||||
+ dnl the maxima library (within ECL) by name instead of by
|
||||
+ dnl absolute path.
|
||||
+ SAGE_MAXIMA='${prefix}'/bin/maxima
|
||||
+ SAGE_MAXIMA_FAS='${prefix}'/lib/ecl/maxima.fas
|
||||
+ ])
|
||||
+
|
||||
+ AC_SUBST(SAGE_MAXIMA, "${SAGE_MAXIMA}")
|
||||
+ AC_SUBST(SAGE_MAXIMA_FAS, "${SAGE_MAXIMA_FAS}")
|
||||
+])
|
||||
diff --git a/build/pkgs/maxima/spkg-install.in b/build/pkgs/maxima/spkg-install.in
|
||||
index 3ae6382f9ba..cdb6fbf2069 100644
|
||||
--- a/build/pkgs/maxima/spkg-install.in
|
||||
+++ b/build/pkgs/maxima/spkg-install.in
|
||||
@@ -28,28 +28,6 @@ echo
|
||||
echo "Now configuring Maxima..."
|
||||
sdh_configure --enable-ecl git_found=false
|
||||
|
||||
-# Note the following is regression in maxima build system
|
||||
-# see https://sourceforge.net/p/maxima/bugs/3278/
|
||||
-# and https://sourceforge.net/p/maxima/bugs/2878/
|
||||
-# For the previous time it was fixed.
|
||||
-#---------------------------------------------------------------
|
||||
-# Touching html and info file to avoid to regenerate them.
|
||||
-# This must be done after configuration since the timestamp need
|
||||
-# to be later than include-maxima.texi which is generated at
|
||||
-# configuration time
|
||||
-for i in doc/info/*.html ; do
|
||||
- touch "${i}"
|
||||
-done
|
||||
-touch doc/info/maxima.info*
|
||||
-# Maxima 5.44.0 build_html.sh is not compatible with makeinfo 4.8
|
||||
-# (which is /usr/bin/makeinfo on macOS). #30063
|
||||
-# Do not build the HTML docs unless the user asks for it,
|
||||
-# in which case it is their problem to install a better
|
||||
-# makeinfo version.
|
||||
-if [[ "$SAGE_SPKG_INSTALL_DOCS" != yes ]] ; then
|
||||
-touch doc/info/maxima_toc.html interfaces/xmaxima/doc/xmaxima.html
|
||||
-fi
|
||||
-
|
||||
#---------------------------------------------------------------
|
||||
|
||||
sdh_make
|
||||
diff --git a/build/pkgs/tox/spkg-configure.m4 b/build/pkgs/tox/spkg-configure.m4
|
||||
index 7d8ade4c14b..3de0b9b710d 100644
|
||||
--- a/build/pkgs/tox/spkg-configure.m4
|
||||
+++ b/build/pkgs/tox/spkg-configure.m4
|
||||
@@ -5,7 +5,7 @@ SAGE_SPKG_CONFIGURE([tox], [
|
||||
m4_pushdef([TOX4_MIN_VERSION], [4.0.15])
|
||||
AC_CACHE_CHECK([for tox 3 >= ]TOX3_MIN_VERSION[ or tox 4 >= ]TOX4_MIN_VERSION, [ac_cv_path_TOX], [
|
||||
AC_PATH_PROGS_FEATURE_CHECK([TOX], [tox], [
|
||||
- tox_version=$($ac_path_TOX --version 2> /dev/null | tail -1)
|
||||
+ tox_version=$($ac_path_TOX --version 2> /dev/null | tail -n -1)
|
||||
AS_IF([test -n "$tox_version"], [
|
||||
AX_COMPARE_VERSION([$tox_version], [lt], [4], [
|
||||
AX_COMPARE_VERSION([$tox_version], [ge], TOX3_MIN_VERSION, [
|
||||
diff --git a/pkgs/sage-conf/_sage_conf/_conf.py.in b/pkgs/sage-conf/_sage_conf/_conf.py.in
|
||||
index d66bdb3d264..f2e197b45ed 100644
|
||||
--- a/pkgs/sage-conf/_sage_conf/_conf.py.in
|
||||
+++ b/pkgs/sage-conf/_sage_conf/_conf.py.in
|
||||
@@ -9,9 +9,11 @@ VERSION = "@PACKAGE_VERSION@"
|
||||
SAGE_LOCAL = "@prefix@"
|
||||
SAGE_ROOT = "@SAGE_ROOT@"
|
||||
|
||||
-MAXIMA = "@prefix@/bin/maxima"
|
||||
+# The path to the standalone maxima executable.
|
||||
+MAXIMA = "@SAGE_MAXIMA@".replace('${prefix}', SAGE_LOCAL)
|
||||
|
||||
-# Delete this line if your ECL can load maxima without further prodding.
|
||||
+# Set this to the empty string if your ECL can load maxima without
|
||||
+# further prodding.
|
||||
MAXIMA_FAS = "@SAGE_MAXIMA_FAS@".replace('${prefix}', SAGE_LOCAL)
|
||||
|
||||
# Delete this line if your ECL can load Kenzo without further prodding.
|
||||
diff --git a/src/bin/sage-env b/src/bin/sage-env
|
||||
index a7da60df28f..13b54fa7e92 100644
|
||||
--- a/src/bin/sage-env
|
||||
+++ b/src/bin/sage-env
|
||||
@@ -440,9 +440,6 @@ if [ -d "$DOT_SAGE" ] ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
-if [ -n "$SAGE_LOCAL" ]; then
|
||||
- export MAXIMA_PREFIX="$SAGE_LOCAL"
|
||||
-fi
|
||||
export MAXIMA_USERDIR="$DOT_SAGE/maxima"
|
||||
|
||||
if [ -n "$SAGE_LOCAL" ]; then
|
||||
diff --git a/src/sage/calculus/calculus.py b/src/sage/calculus/calculus.py
|
||||
index dae380180ac..ee8f632e94c 100644
|
||||
--- a/src/sage/calculus/calculus.py
|
||||
+++ b/src/sage/calculus/calculus.py
|
||||
@@ -136,10 +136,11 @@
|
||||
[ 1/2*(e^(2*sqrt(x)) + 1)*e^(x - sqrt(x)) 1/2*(x*e^(2*sqrt(x)) - x)*sqrt(x)*e^(x - sqrt(x))]
|
||||
[ 1/2*(e^(2*sqrt(x)) - 1)*e^(x - sqrt(x))/x^(3/2) 1/2*(e^(2*sqrt(x)) + 1)*e^(x - sqrt(x))]
|
||||
|
||||
-And complex exponentiation works now::
|
||||
+Complex exponentiation works, but may require a patched version of
|
||||
+maxima (:trac:`32898`) for now::
|
||||
|
||||
sage: M = i*matrix([[pi]])
|
||||
- sage: e^M
|
||||
+ sage: e^M # not tested, requires patched maxima
|
||||
[-1]
|
||||
sage: M = i*matrix([[pi,0],[0,2*pi]])
|
||||
sage: e^M
|
||||
@@ -1186,8 +1187,18 @@ def limit(ex, dir=None, taylor=False, algorithm='maxima', **argv):
|
||||
e
|
||||
sage: f.limit(x=5)
|
||||
7776/3125
|
||||
- sage: f.limit(x=1.2)
|
||||
+
|
||||
+ Domain to real, a regression in 5.46.0, see https://sf.net/p/maxima/bugs/4138 ::
|
||||
+
|
||||
+ sage: maxima_calculus.eval("domain:real")
|
||||
+ ...
|
||||
+ sage: f.limit(x=1.2).n()
|
||||
2.06961575467...
|
||||
+ sage: maxima_calculus.eval("domain:complex");
|
||||
+ ...
|
||||
+
|
||||
+ Otherwise, it works ::
|
||||
+
|
||||
sage: f.limit(x=I, taylor=True)
|
||||
(-I + 1)^I
|
||||
sage: f(x=1.2)
|
||||
@@ -1215,7 +1226,7 @@ def limit(ex, dir=None, taylor=False, algorithm='maxima', **argv):
|
||||
With this example, Maxima is looking for a LOT of information::
|
||||
|
||||
sage: assume(a>0)
|
||||
- sage: limit(x^a,x=0)
|
||||
+ sage: limit(x^a,x=0) # random - maxima 5.46.0 does not need extra assumption
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Computation failed since Maxima requested additional
|
||||
@@ -1224,7 +1235,7 @@ def limit(ex, dir=None, taylor=False, algorithm='maxima', **argv):
|
||||
more details)
|
||||
Is a an integer?
|
||||
sage: assume(a,'integer')
|
||||
- sage: limit(x^a, x=0)
|
||||
+ sage: limit(x^a, x=0) # random - maxima 5.46.0 does not need extra assumption
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Computation failed since Maxima requested additional
|
||||
@@ -2251,10 +2262,10 @@ def symbolic_expression_from_maxima_string(x, equals_sub=False, maxima=maxima):
|
||||
True
|
||||
sage: sefms("x # 3") == SR(x != 3)
|
||||
True
|
||||
- sage: solve([x != 5], x)
|
||||
- [[x - 5 != 0]]
|
||||
+ sage: solve([x != 5], x) in [[[x - 5 != 0]], [[x < 5], [5 < x]]]
|
||||
+ True
|
||||
sage: solve([2*x==3, x != 5], x)
|
||||
- [[x == (3/2), (-7/2) != 0]]
|
||||
+ [[x == (3/2)...
|
||||
|
||||
Make sure that we don't accidentally pick up variables in the maxima namespace (:trac:`8734`)::
|
||||
|
||||
diff --git a/src/sage/functions/exp_integral.py b/src/sage/functions/exp_integral.py
|
||||
index e6c888c64b6..f314e525145 100644
|
||||
--- a/src/sage/functions/exp_integral.py
|
||||
+++ b/src/sage/functions/exp_integral.py
|
||||
@@ -601,8 +601,8 @@ class Function_log_integral_offset(BuiltinFunction):
|
||||
1/log(x)
|
||||
sage: f.integrate(x)
|
||||
-x*log_integral(2) + x*log_integral(x) - Ei(2*log(x))
|
||||
- sage: Li(x).integrate(x,2.0,4.5)
|
||||
- -2.5*log_integral(2) + 5.799321147411334
|
||||
+ sage: Li(x).integrate(x,2.0,4.5).n(digits=10)
|
||||
+ 3.186411697
|
||||
sage: N(f.integrate(x,2.0,3.0)) # abs tol 1e-15
|
||||
0.601621785860587
|
||||
|
||||
diff --git a/src/sage/interfaces/expect.py b/src/sage/interfaces/expect.py
|
||||
index 68ae715e4c3..84adf0341b5 100644
|
||||
--- a/src/sage/interfaces/expect.py
|
||||
+++ b/src/sage/interfaces/expect.py
|
||||
@@ -620,7 +620,7 @@ def quit(self, verbose=False):
|
||||
|
||||
sage: a = maxima('y')
|
||||
sage: maxima.quit(verbose=True)
|
||||
- Exiting Maxima with PID ... running .../bin/maxima...
|
||||
+ Exiting Maxima with PID ... running ...maxima...
|
||||
sage: a._check_valid()
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
diff --git a/src/sage/interfaces/maxima.py b/src/sage/interfaces/maxima.py
|
||||
index 27b1e98a6ac..4829560f98b 100644
|
||||
--- a/src/sage/interfaces/maxima.py
|
||||
+++ b/src/sage/interfaces/maxima.py
|
||||
@@ -622,11 +622,6 @@ def _start(self):
|
||||
sage: m.is_running()
|
||||
True
|
||||
|
||||
- Test that we can use more than 256MB RAM (see :trac:`6772`)::
|
||||
-
|
||||
- sage: a = maxima(10)^(10^5)
|
||||
- sage: b = a^600 # long time -- about 10-15 seconds
|
||||
-
|
||||
"""
|
||||
Expect._start(self)
|
||||
self._sendline(r":lisp (defun tex-derivative (x l r) (tex (if $derivabbrev (tex-dabbrev x) (tex-d x '\\partial)) l r lop rop ))")
|
||||
@@ -634,9 +629,6 @@ def _start(self):
|
||||
# Don't use ! for factorials (#11539)
|
||||
self._sendline(":lisp (remprop 'mfactorial 'grind)")
|
||||
|
||||
- # Remove limit on the max heapsize (since otherwise it defaults
|
||||
- # to 256MB with ECL).
|
||||
- self._sendline(":lisp (ext:set-limit 'ext:heap-size 0)")
|
||||
self._eval_line('0;')
|
||||
|
||||
# set random seed
|
||||
diff --git a/src/sage/interfaces/maxima_lib.py b/src/sage/interfaces/maxima_lib.py
|
||||
index c263ac65f02..bba8504aa92 100644
|
||||
--- a/src/sage/interfaces/maxima_lib.py
|
||||
+++ b/src/sage/interfaces/maxima_lib.py
|
||||
@@ -934,8 +934,15 @@ def sr_limit(self, expr, v, a, dir=None):
|
||||
e
|
||||
sage: limit(f,x = 5)
|
||||
7776/3125
|
||||
- sage: limit(f,x = 1.2)
|
||||
+
|
||||
+ Domain to real, a regression in 5.46.0, see https://sf.net/p/maxima/bugs/4138 ::
|
||||
+
|
||||
+ sage: maxima_calculus.eval("domain:real")
|
||||
+ ...
|
||||
+ sage: limit(f,x = 1.2).n()
|
||||
2.06961575467...
|
||||
+ sage: maxima_calculus.eval("domain:complex");
|
||||
+ ...
|
||||
sage: var('a')
|
||||
a
|
||||
sage: limit(x^a,x=0)
|
||||
@@ -947,7 +954,7 @@ def sr_limit(self, expr, v, a, dir=None):
|
||||
for more details)
|
||||
Is a positive, negative or zero?
|
||||
sage: assume(a>0)
|
||||
- sage: limit(x^a,x=0)
|
||||
+ sage: limit(x^a,x=0) # random - not needed for maxima 5.46.0
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
ValueError: Computation failed ...
|
||||
diff --git a/src/sage/matrix/matrix2.pyx b/src/sage/matrix/matrix2.pyx
|
||||
index e2e6449dfa9..15914b0be3e 100644
|
||||
--- a/src/sage/matrix/matrix2.pyx
|
||||
+++ b/src/sage/matrix/matrix2.pyx
|
||||
@@ -15425,9 +15425,10 @@ cdef class Matrix(Matrix1):
|
||||
|
||||
TESTS:
|
||||
|
||||
- Check that sparse matrices are handled correctly (:trac:`28935`)::
|
||||
+ Sparse matrices are handled correctly (:trac:`28935`), but may
|
||||
+ require a patched version of maxima (:trac:`32898`) for now::
|
||||
|
||||
- sage: matrix.diagonal([0], sparse=True).exp()
|
||||
+ sage: matrix.diagonal([0], sparse=True).exp() # not tested, requires patched maxima
|
||||
[1]
|
||||
sage: matrix.zero(CBF, 2, sparse=True).exp()
|
||||
[1.000000000000000 0]
|
||||
diff --git a/src/sage/matrix/matrix_symbolic_dense.pyx b/src/sage/matrix/matrix_symbolic_dense.pyx
|
||||
index 19ca5c85cb2..58a25e002f6 100644
|
||||
--- a/src/sage/matrix/matrix_symbolic_dense.pyx
|
||||
+++ b/src/sage/matrix/matrix_symbolic_dense.pyx
|
||||
@@ -402,7 +402,8 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense):
|
||||
[1/2*(e^(2*x) + 1)*e^(-x) 1/2*(e^(2*x) - 1)*e^(-x)]
|
||||
[1/2*(e^(2*x) - 1)*e^(-x) 1/2*(e^(2*x) + 1)*e^(-x)]
|
||||
|
||||
- Exp works on 0x0 and 1x1 matrices::
|
||||
+ Exponentiation works on 0x0 and 1x1 matrices, but the 1x1 example
|
||||
+ requires a patched version of maxima (:trac:`32898`) for now::
|
||||
|
||||
sage: m = matrix(SR,0,[]); m
|
||||
[]
|
||||
@@ -410,7 +411,7 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense):
|
||||
[]
|
||||
sage: m = matrix(SR,1,[2]); m
|
||||
[2]
|
||||
- sage: m.exp()
|
||||
+ sage: m.exp() # not tested, requires patched maxima
|
||||
[e^2]
|
||||
|
||||
Commuting matrices `m, n` have the property that
|
||||
@@ -451,7 +452,6 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense):
|
||||
[ 0 1/2*(e^(2*x) + 1)*e^(-x) 1/2*(e^(2*x) - 1)*e^(-x) 0]
|
||||
[ 0 1/2*(e^(2*x) - 1)*e^(-x) 1/2*(e^(2*x) + 1)*e^(-x) 0]
|
||||
[1/2*(e^(2*x) - 1)*e^(-x) 0 0 1/2*(e^(2*x) + 1)*e^(-x)]
|
||||
-
|
||||
"""
|
||||
if not self.is_square():
|
||||
raise ValueError("exp only defined on square matrices")
|
||||
diff --git a/src/sage/symbolic/integration/integral.py b/src/sage/symbolic/integration/integral.py
|
||||
index c82e9ed73c3..e84ad357ee2 100644
|
||||
--- a/src/sage/symbolic/integration/integral.py
|
||||
+++ b/src/sage/symbolic/integration/integral.py
|
||||
@@ -741,14 +741,14 @@ def integrate(expression, v=None, a=None, b=None, algorithm=None, hold=False):
|
||||
|
||||
sage: _ = var('x,y')
|
||||
sage: f = log(x^2+y^2)
|
||||
- sage: res = integral(f,x,0.0001414, 1.); res
|
||||
+ sage: res = integral(f,x,1414/10^7, 1); res
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
- ValueError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help (example of legal syntax is 'assume(50015104*y^2-50015103>0)', see `assume?` for more details)
|
||||
- Is 50015104*y^2-50015103 positive, negative or zero?
|
||||
+ ValueError: Computation failed since Maxima requested additional constraints; using the 'assume' command before evaluation *may* help ...
|
||||
+ Is ... positive, negative or zero?
|
||||
sage: assume(y>1)
|
||||
- sage: res = integral(f,x,0.0001414, 1.); res
|
||||
- 2*y*arctan(1.0/y) - 2*y*arctan(0.0001414/y) + 1.0*log(1.0*y^2 + 1.0) - 0.0001414*log(1.0*y^2 + 1.9993959999999997e-08) - 1.9997172
|
||||
+ sage: res = integral(f,x,1414/10^7, 1); res
|
||||
+ -2*y*arctan(707/5000000/y) + 2*y*arctan(1/y) + log(y^2 + 1) - 707/5000000*log(y^2 + 499849/25000000000000) - 4999293/2500000
|
||||
sage: nres = numerical_integral(f.subs(y=2), 0.0001414, 1.); nres
|
||||
(1.4638323264144..., 1.6251803529759...e-14)
|
||||
sage: res.subs(y=2).n()
|
||||
diff --git a/src/sage/symbolic/relation.py b/src/sage/symbolic/relation.py
|
||||
index 94813315181..a72ab547c76 100644
|
||||
--- a/src/sage/symbolic/relation.py
|
||||
+++ b/src/sage/symbolic/relation.py
|
||||
@@ -1787,8 +1787,8 @@ def solve_ineq_fourier(ineq, vars=None):
|
||||
sage: y = var('y')
|
||||
sage: solve_ineq_fourier([x+y<9,x-y>4],[x,y])
|
||||
[[y + 4 < x, x < -y + 9, y < (5/2)]]
|
||||
- sage: solve_ineq_fourier([x+y<9,x-y>4],[y,x])
|
||||
- [[y < min(x - 4, -x + 9)]]
|
||||
+ sage: solve_ineq_fourier([x+y<9,x-y>4],[y,x])[0][0](x=42)
|
||||
+ y < -33
|
||||
|
||||
sage: solve_ineq_fourier([x^2>=0])
|
||||
[[x < +Infinity]]
|
54
srcpkgs/sagemath/patches/35635-sympy_1.12.patch
Normal file
54
srcpkgs/sagemath/patches/35635-sympy_1.12.patch
Normal file
@ -0,0 +1,54 @@
|
||||
diff --git a/src/sage/calculus/calculus.py b/src/sage/calculus/calculus.py
|
||||
index dae380180ac..ca3c59e63d2 100644
|
||||
--- a/src/sage/calculus/calculus.py
|
||||
+++ b/src/sage/calculus/calculus.py
|
||||
@@ -1690,8 +1690,11 @@ def laplace(ex, t, s, algorithm='maxima'):
|
||||
|
||||
Testing SymPy::
|
||||
|
||||
- sage: laplace(t^n, t, s, algorithm='sympy')
|
||||
- (gamma(n + 1)/(s*s^n), 0, re(n) > -1)
|
||||
+ sage: F, a, cond = laplace(t^n, t, s, algorithm='sympy')
|
||||
+ sage: a, cond
|
||||
+ (0, re(n) > -1)
|
||||
+ sage: F.simplify()
|
||||
+ s^(-n - 1)*gamma(n + 1)
|
||||
|
||||
Testing Maxima::
|
||||
|
||||
@@ -1700,17 +1703,19 @@ def laplace(ex, t, s, algorithm='maxima'):
|
||||
|
||||
Check that :trac:`24212` is fixed::
|
||||
|
||||
- sage: laplace(cos(t^2), t, s, algorithm='sympy')
|
||||
- (-1/2*sqrt(pi)*(sqrt(2)*cos(1/4*s^2)*fresnel_sin(1/2*sqrt(2)*s/sqrt(pi)) -
|
||||
- sqrt(2)*fresnel_cos(1/2*sqrt(2)*s/sqrt(pi))*sin(1/4*s^2) - cos(1/4*pi + 1/4*s^2)),
|
||||
- 0, True)
|
||||
+ sage: F, a, cond = laplace(cos(t^2), t, s, algorithm='sympy')
|
||||
+ sage: a, cond
|
||||
+ (0, True)
|
||||
+ sage: F._sympy_().simplify()
|
||||
+ sqrt(pi)*(sqrt(2)*sin(s**2/4)*fresnelc(sqrt(2)*s/(2*sqrt(pi))) -
|
||||
+ sqrt(2)*cos(s**2/4)*fresnels(sqrt(2)*s/(2*sqrt(pi))) + cos(s**2/4 + pi/4))/2
|
||||
|
||||
Testing result from SymPy that Sage doesn't know how to handle::
|
||||
|
||||
sage: laplace(cos(-1/t), t, s, algorithm='sympy')
|
||||
Traceback (most recent call last):
|
||||
...
|
||||
- AttributeError: Unable to convert SymPy result (=meijerg(((), ()), ((-1/2, 0, 1/2), (0,)), s**2/16)/4) into Sage
|
||||
+ AttributeError: Unable to convert SymPy result (=meijerg(((), ()), ((-1/2, 0, 1/2), (0,)), ...)/4) into Sage
|
||||
"""
|
||||
if not isinstance(ex, (Expression, Function)):
|
||||
ex = SR(ex)
|
||||
@@ -1817,8 +1822,8 @@ def inverse_laplace(ex, s, t, algorithm='maxima'):
|
||||
|
||||
Transform an expression involving a time-shift, via SymPy::
|
||||
|
||||
- sage: inverse_laplace(1/s^2*exp(-s), s, t, algorithm='sympy')
|
||||
- -(log(e^(-t)) + 1)*heaviside(t - 1)
|
||||
+ sage: inverse_laplace(1/s^2*exp(-s), s, t, algorithm='sympy').simplify()
|
||||
+ (t - 1)*heaviside(t - 1)
|
||||
|
||||
The same instance with Giac::
|
||||
|
@ -1,7 +1,7 @@
|
||||
#! /bin/sh
|
||||
|
||||
URL_BASE_PR="https://github.com/sagemath/sage/pull/"
|
||||
URL_BASE_COMPARE="https://github.com/sagemath/sage/compare/9.8..."
|
||||
URL_BASE_COMPARE="https://github.com/sagemath/sage/compare/10.0..."
|
||||
|
||||
case "$1" in
|
||||
-n) DO=echo ;;
|
||||
@ -15,49 +15,13 @@ get_pr() {
|
||||
$DO wget "$URL_BASE_PR$pr.$ext" -O "$pr-$desc.patch"
|
||||
}
|
||||
|
||||
get_trac() {
|
||||
ticket=$1
|
||||
desc=$(echo "$2" | sed -e 's/ /_/g')
|
||||
commit=$3
|
||||
$DO wget "$URL_BASE_COMPARE$commit.diff" -O "$ticket-$desc-$commit.patch"
|
||||
}
|
||||
|
||||
# run from patches dir
|
||||
cd $(dirname "$0")
|
||||
|
||||
# merged in 10.0.beta0
|
||||
get_trac 34851 "support singular 4.3.1.p3" 5e5737a0c
|
||||
get_pr 35068 "fix tests giac 1.9.0.35" patch
|
||||
|
||||
# merged in 10.0.beta1
|
||||
get_pr 35058 "skip unstable tests klyachko"
|
||||
|
||||
# merged in 10.0.beta2
|
||||
get_pr 34994 "fix tests numpy 1.24"
|
||||
get_pr 34997 "fix edge case of integer_check"
|
||||
|
||||
# merged in 10.0.beta3
|
||||
get_pr 34995 "support tachyon 0.99.2"
|
||||
|
||||
# merged in 10.0.beta4
|
||||
get_pr 34980 "avoid factoring in is_prime"
|
||||
|
||||
# merged in 10.0.beta5
|
||||
get_pr 35094 "support gap 4.12" # includes PR 35093
|
||||
|
||||
# merged in 10.0.beta6
|
||||
get_pr 35127 "fix very slow test stream.py"
|
||||
get_pr 35177 "matplotlib 3.7"
|
||||
get_pr 35195 "workaround ecl race"
|
||||
get_pr 35204 "fix sage-cleaner"
|
||||
|
||||
# merged in 10.0.beta7
|
||||
get_pr 35250 "nauty 2.8.6"
|
||||
|
||||
# merged in 10.0.beta8
|
||||
#get_pr 35337 "ipython 8.11"
|
||||
get_pr 35423 "ipython 8.12" # includes PR 35337
|
||||
get_pr 35438 "pythran 0.12.1"
|
||||
# positive review
|
||||
get_pr 35584 "networkx 3.1"
|
||||
get_pr 35612 "linbox 1.7.0"
|
||||
get_pr 35635 "sympy 1.12"
|
||||
|
||||
# needs review
|
||||
get_pr 35584 "networkx 3.1"
|
||||
get_pr 35619 "maxima 5.46.0"
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Template file for 'sagemath'
|
||||
pkgname=sagemath
|
||||
version=9.8
|
||||
revision=2
|
||||
version=10.0
|
||||
revision=1
|
||||
build_wrksrc=pkgs/sagemath-standard
|
||||
build_style=python3-module
|
||||
_bindir=/usr/lib/sagemath/$version/bin
|
||||
@ -31,8 +31,10 @@ short_desc="Open source mathematics software"
|
||||
maintainer="Gonzalo Tornaría <tornaria@cmat.edu.uy>"
|
||||
license="GPL-2.0-or-later"
|
||||
homepage="http://sagemath.org/"
|
||||
changelog="https://github.com/sagemath/sage/releases"
|
||||
distfiles="https://github.com/sagemath/sage/archive/refs/tags/$version.tar.gz"
|
||||
checksum=2aff28bd1d18c2d526581f5298acb8336f5b92db5675a7403dec8eaf9a86bc4c
|
||||
checksum=60858efd0d1f2526486740962bf72c99f9141a56caf8395f3291fded276faf55
|
||||
nocross="due to ntl (flintlib), fflas-ffpack, givaro, linbox, cysignals, sympow, maxima"
|
||||
|
||||
do_configure() {
|
||||
# git tree needs bootstrapping
|
||||
|
Loading…
x
Reference in New Issue
Block a user