Ticket #9634: trac_9634-symbolic_binomial.patch

File trac_9634-symbolic_binomial.patch, 13.0 KB (added by burcin, 3 years ago)

make the top level binomial() function symbolic

  • sage/combinat/all.py

    # HG changeset patch
    # User Burcin Erocal <burcin@erocal.org>
    # Date 1286810031 -7200
    # Node ID c395ccfdf295be9b70c17d9a231a6960ec8f3434
    # Parent  ab64f6839bd9f0b57c418594fa03efa2a863caef
    trac 9634: Use the symbolic binomial function defined in sage.functions.other at the top level, instead of the one defined in sage.rings.arith.
    
    diff --git a/sage/combinat/all.py b/sage/combinat/all.py
    a b  
    1 from combinat import * 
     1from combinat import bell_number, catalan_number, euler_number, fibonacci, \ 
     2        lucas_number1, lucas_number2, stirling_number1, stirling_number2, \ 
     3        CombinatorialObject, CombinatorialClass, FilteredCombinatorialClass, \ 
     4        UnionCombinatorialClass, MapCombinatorialClass, \ 
     5        InfiniteAbstractCombinatorialClass, \ 
     6        hurwitz_zeta, combinations, combinations_iterator, \ 
     7        number_of_combinations, arrangements, number_of_arrangements, \ 
     8        derangements, number_of_derangements, tuples, number_of_tuples, \ 
     9        unordered_tuples, number_of_unordered_tuples, permutations, \ 
     10        permutations_iterator, number_of_permutations, cyclic_permutations, \ 
     11        cyclic_permutations_iterator, bell_polynomial, fibonacci_sequence, \ 
     12        fibonacci_xrange, bernoulli_polynomial 
     13 
    214from expnums import expnums 
    315 
    416from sage.combinat.crystals.all import * 
  • sage/combinat/alternating_sign_matrix.py

    diff --git a/sage/combinat/alternating_sign_matrix.py b/sage/combinat/alternating_sign_matrix.py
    a b  
    1818 
    1919from combinat import CombinatorialClass 
    2020from sage.matrix.matrix_space import MatrixSpace 
    21 from sage.rings.all import ZZ, factorial 
     21from sage.rings.all import ZZ 
     22from sage.rings.arith import factorial 
    2223from sage.sets.set import Set 
    2324from sage.misc.misc import prod 
    2425import copy 
  • sage/combinat/combination.py

    diff --git a/sage/combinat/combination.py b/sage/combinat/combination.py
    a b  
    1717#***************************************************************************** 
    1818 
    1919from sage.interfaces.all import gap 
    20 from sage.rings.all import ZZ, Integer, binomial 
     20from sage.rings.all import ZZ, Integer 
     21from sage.rings.arith import binomial 
    2122from combinat import CombinatorialClass 
    2223from choose_nk import rank, from_rank 
    2324from integer_vector import IntegerVectors 
  • sage/combinat/composition_signed.py

    diff --git a/sage/combinat/composition_signed.py b/sage/combinat/composition_signed.py
    a b  
    1919from combinat import CombinatorialClass 
    2020import composition 
    2121import cartesian_product 
    22 from sage.rings.all import binomial, Integer 
     22from sage.rings.all import Integer 
     23from sage.rings.arith import binomial 
    2324import __builtin__ 
    2425 
    2526def SignedCompositions(n): 
  • sage/combinat/lyndon_word.py

    diff --git a/sage/combinat/lyndon_word.py b/sage/combinat/lyndon_word.py
    a b  
    1919 
    2020from combinat import CombinatorialClass 
    2121from sage.combinat.composition import Composition, Compositions 
    22 from sage.rings.all import factorial, divisors, gcd, moebius, Integer 
     22from sage.rings.all import divisors, gcd, moebius, Integer 
     23from sage.rings.arith import factorial 
    2324from sage.misc.misc import prod 
    2425import __builtin__ 
    2526import necklace 
  • sage/combinat/partition.py

    diff --git a/sage/combinat/partition.py b/sage/combinat/partition.py
    a b  
    192192#***************************************************************************** 
    193193 
    194194from sage.interfaces.all import gap, gp 
    195 from sage.rings.all import QQ, ZZ, infinity, factorial, gcd 
     195from sage.rings.all import QQ, ZZ, infinity, gcd 
     196from sage.rings.arith import factorial 
    196197from sage.misc.all import prod 
    197198from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing 
    198199import sage.combinat.misc as misc 
  • sage/combinat/permutation.py

    diff --git a/sage/combinat/permutation.py b/sage/combinat/permutation.py
    a b  
    2828#                  http://www.gnu.org/licenses/ 
    2929#***************************************************************************** 
    3030from sage.interfaces.all import gap 
    31 from sage.rings.all import ZZ, Integer, PolynomialRing, factorial 
     31from sage.rings.all import ZZ, Integer, PolynomialRing 
     32from sage.rings.arith import factorial 
    3233from sage.matrix.all import matrix 
    3334from sage.combinat.tools import transitive_ideal 
    3435import sage.combinat.subword as subword 
  • sage/combinat/sf/ns_macdonald.py

    diff --git a/sage/combinat/sf/ns_macdonald.py b/sage/combinat/sf/ns_macdonald.py
    a b  
    55from sage.combinat.words.word import Word 
    66from sage.combinat.combination import Combinations 
    77from sage.combinat.permutation import Permutation 
    8 from sage.rings.all import QQ, PolynomialRing, prod 
     8from sage.rings.all import QQ, PolynomialRing 
     9from sage.misc.misc import prod 
    910from sage.combinat.backtrack import GenericBacktracker 
    1011import copy 
    1112 
  • sage/combinat/skew_tableau.py

    diff --git a/sage/combinat/skew_tableau.py b/sage/combinat/skew_tableau.py
    a b  
    1616#                  http://www.gnu.org/licenses/ 
    1717#***************************************************************************** 
    1818 
    19 from sage.rings.all import Integer, factorial 
     19from sage.rings.all import Integer 
     20from sage.rings.arith import factorial 
    2021from sage.misc.misc import uniq 
    2122import partition 
    2223import sage.combinat.tableau 
  • sage/combinat/species/misc.py

    diff --git a/sage/combinat/species/misc.py b/sage/combinat/species/misc.py
    a b  
    1616#                  http://www.gnu.org/licenses/ 
    1717#***************************************************************************** 
    1818from sage.groups.all import PermutationGroup, PermutationGroup_generic, PermutationGroupElement, SymmetricGroup 
    19 from sage.rings.all import prod 
     19from sage.misc.misc import prod 
    2020from functools import wraps 
    2121 
    2222def change_support(perm, support, change_perm=None): 
  • sage/combinat/species/product_species.py

    diff --git a/sage/combinat/species/product_species.py b/sage/combinat/species/product_species.py
    a b  
    380380            sage: S.algebraic_equation_system() 
    381381            [node0 - z^2] 
    382382        """ 
    383         from sage.rings.all import prod 
     383        from sage.misc.misc import prod 
    384384        return prod(var_mapping[operand] for operand in self._state_info) 
    385385 
  • sage/combinat/species/series.py

    diff --git a/sage/combinat/species/series.py b/sage/combinat/species/series.py
    a b  
    3030#***************************************************************************** 
    3131from stream import Stream, Stream_class 
    3232from series_order import  bounded_decrement, increment, inf, unk 
    33 from sage.rings.all import Integer, Ring, prod 
     33from sage.rings.all import Integer, Ring 
     34from sage.misc.misc import prod 
    3435from functools import partial 
    3536from sage.misc.misc import repr_lincomb, is_iterator 
    3637 
  • sage/combinat/symmetric_group_algebra.py

    diff --git a/sage/combinat/symmetric_group_algebra.py b/sage/combinat/symmetric_group_algebra.py
    a b  
    1515import partition 
    1616from tableau import Tableau, StandardTableaux_n, StandardTableaux_partition, StandardTableaux 
    1717from sage.interfaces.all import gap 
    18 from sage.rings.all import factorial, QQ, PolynomialRing 
     18from sage.rings.all import QQ, PolynomialRing 
     19from sage.rings.arith import factorial 
    1920from sage.matrix.all import matrix 
    2021from sage.modules.all import vector 
    2122 
  • sage/combinat/words/shuffle_product.py

    diff --git a/sage/combinat/words/shuffle_product.py b/sage/combinat/words/shuffle_product.py
    a b  
    1818#***************************************************************************** 
    1919from sage.combinat.words.word import Word_class 
    2020from sage.combinat.combinat import CombinatorialClass 
    21 from sage.rings.all import binomial 
     21from sage.rings.arith import binomial 
    2222from sage.combinat.integer_vector import IntegerVectors 
    2323from sage.combinat.subset import Subsets 
    2424 
  • sage/functions/all.py

    diff --git a/sage/functions/all.py b/sage/functions/all.py
    a b  
    1515 
    1616 
    1717 
    18 from other import ( ceil, floor, gamma, psi, factorial, 
     18from other import ( ceil, floor, gamma, psi, factorial, binomial, 
    1919                    abs_symbolic, erf, sqrt, 
    2020                    gamma_inc, incomplete_gamma, 
    2121                    real_part, real, 
  • sage/matrix/matrix_integer_dense_saturation.py

    diff --git a/sage/matrix/matrix_integer_dense_saturation.py b/sage/matrix/matrix_integer_dense_saturation.py
    a b  
    22Saturation over ZZ 
    33""" 
    44 
    5 from sage.rings.all import ZZ, gcd, binomial, GF 
     5from sage.rings.all import ZZ, gcd, GF 
     6from sage.rings.arith import binomial 
    67from sage.matrix.constructor import identity_matrix, random_matrix 
    78from sage.misc.misc import verbose 
    89from sage.misc.randstate import current_randstate 
  • sage/modular/modform/vm_basis.py

    diff --git a/sage/modular/modform/vm_basis.py b/sage/modular/modform/vm_basis.py
    a b  
    2929import math 
    3030 
    3131from sage.matrix.all import MatrixSpace, Matrix 
    32 from sage.rings.all import QQ, ZZ, Integer, binomial, PowerSeriesRing, O as bigO 
     32from sage.rings.all import QQ, ZZ, Integer, PowerSeriesRing, O as bigO 
     33from sage.rings.arith import binomial 
    3334from sage.structure.all import Sequence 
    3435from sage.libs.flint.fmpz_poly import Fmpz_poly 
    3536from sage.misc.all import verbose 
  • sage/rings/all.py

    diff --git a/sage/rings/all.py b/sage/rings/all.py
    a b  
    133133from contfrac import continued_fraction, CFF, ContinuedFractionField 
    134134 
    135135# Arithmetic 
    136 from arith import * 
     136from arith import algdep, bernoulli, is_prime, is_prime_power, \ 
     137        is_pseudoprime, is_pseudoprime_small_power, valuation, \ 
     138        prime_powers, primes_first_n, eratosthenes, primes, \ 
     139        next_prime_power, next_probable_prime, next_prime, \ 
     140        previous_prime, previous_prime_power, random_prime, \ 
     141        divisors, sigma, gcd, GCD, lcm, LCM, xlcm, xgcd, \ 
     142        inverse_mod, get_gcd, get_inverse_mod, power_mod, \ 
     143        rational_reconstruction, mqrr_rational_reconstruction, \ 
     144        trial_division, factor, prime_divisors, odd_part, prime_to_m_part, \ 
     145        is_square, is_squarefree, euler_phi, crt, CRT, CRT_list, CRT_basis, \ 
     146        CRT_vectors, multinomial, multinomial_coefficients, \ 
     147        gaussian_binomial, kronecker_symbol, kronecker, legendre_symbol, \ 
     148        primitive_root, nth_prime, quadratic_residues, moebius, \ 
     149        farey, continued_fraction_list, convergent, convergents, \ 
     150        continuant, number_of_divisors, hilbert_symbol, hilbert_conductor, \ 
     151        hilbert_conductor_inverse, falling_factorial, rising_factorial, \ 
     152        integer_ceil, integer_floor, two_squares, four_squares, \ 
     153        subfactorial, is_power_of_two, differences, \ 
     154        sort_complex_numbers_for_display, \ 
     155        fundamental_discriminant, squarefree_divisors 
     156 
    137157from fast_arith import prime_range 
    138158 
    139159from bernoulli_mod_p import bernoulli_mod_p, bernoulli_mod_p_single 
  • sage/schemes/elliptic_curves/ell_finite_field.py

    diff --git a/sage/schemes/elliptic_curves/ell_finite_field.py b/sage/schemes/elliptic_curves/ell_finite_field.py
    a b  
    19001900    J = polygen(GF(p),'j') 
    19011901    if p<13: 
    19021902        return J.parent().one() 
    1903     from sage.rings.all import binomial 
     1903    from sage.rings.arith import binomial 
    19041904    from sage.misc.all import prod 
    19051905    m=(p-1)//2 
    19061906    X,T = PolynomialRing(GF(p),2,names=['X','T']).gens() 
  • sage/schemes/elliptic_curves/heegner.py

    diff --git a/sage/schemes/elliptic_curves/heegner.py b/sage/schemes/elliptic_curves/heegner.py
    a b  
    68836883    #    You can think this through or just type something like 
    68846884    #      f = function('f',x); g = function('g',x); diff(f*g,6) 
    68856885    #    into Sage to be convinced. 
    6886     L = rings.binomial(rE + rF, rE) * (L_E * L_F / (rings.factorial(rE+rF)) ) 
     6886    L = arith.binomial(rE + rF, rE) * (L_E * L_F / (arith.factorial(rE+rF)) ) 
    68876887 
    68886888    #  - ||omega||^2 -- the period.  It's twice the volume of the 
    68896889    #    period lattice.  See the following paper for a derivation: 
  • sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py

    diff --git a/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py b/sage/schemes/hyperelliptic_curves/hyperelliptic_finite_field.py
    a b  
    1717#                  http://www.gnu.org/licenses/ 
    1818#***************************************************************************** 
    1919 
    20 from sage.rings.all import ZZ, RR, binomial 
     20from sage.rings.all import ZZ, RR 
     21from sage.rings.arith import binomial 
    2122import hyperelliptic_generic 
    2223from sage.schemes.hyperelliptic_curves.hypellfrob import hypellfrob 
    2324