{"shas":[["ef99b442e87984ddcc0accf9d0253e6b9179f093","b958c3ef45b756747570442941c30f832e64d46a@web.de","Start hypergeometric function classes.\n\nTODO: should __new__ accept **options?\n\nBoilerplate:\nsympy/core/containers.py:\n  (Tuple._to_mpmath) New methods.\n  (Tuple.diff) Likewise.\nsympy/functions/__init__.py: Import hyper, meijerg.\ndoc/src/modules/functions.txt: Create docs for hyper, meijerg.\n\nNew files:\nsympy/functions/special/hyper.py:\n  (TupleParametersBase) New class.\n  (hyper) Likewise.\n  (meijerg) Likewise.\nsympy/functions/special/tests/test_hyper.py\n  (test_hyper) New test.\n  (test_hyper_printing) Likewise.\n  (test_meijer) Likewise.\n  (test_meijer_printing) Likewise.\n\nPretty printing:\nsympy/printing/latex.py:\n  (_print_hyper) New method.\n  (_print_meijerg) Likewise.\nsympy/printing/pretty/pretty.py:\n  (_print_hyper) Likewise.\n  (_print_meijerg) Likewise.\n  (_hprint_vec) Likewise.\n  (_hprint_vseparator) Likewise.","Tom Bachmann"],["32514ed3dd3275d26d039411989f789653ded0b2","b958c3ef45b756747570442941c30f832e64d46a@web.de","Improve lower and upper gamma functions.\n\nThis commit adds differentiation, numerical evaluation and pretty printing\nof the aforementioned functions. It also adds evaluation at half-integers.\n\ndoc/src/modules/functions.txt: Add lowergamma.\n\nsympy/functions/special/gamma_functions.py:\n  (lowergamma.fdiff) New method.\n  (lowergamma._eval_evalf) Likewise.\n  (uppergamma._eval_evalf) Likewsie.\n  (uppergamma.fdiff) Fix old code.\n  (lowergamma.eval) Handle half-integers.\n  (uppergamma.eval) Likewise.\n\nsympy/printing/latex.py:\n  (_print_uppergamma) New method.\n  (_print_lowergamma) Likewise.\nsympy/printing/pretty/pretty.py:\n  (_print_uppergamma) Likewise.\n  (_print_lowergamma) Likewise.\n\nsympy/functions/special/tests/test_gamma_functions.py:\n  (test_lowergamma) Extend test.\n  (test_uppergamma) Likewise.","Tom Bachmann"],["e01c9fb6a6bae6d308f98927dc1247b05ac5afdd","b958c3ef45b756747570442941c30f832e64d46a@web.de","Start hyperexpand.\n\nThis commit starts the hypergeometric function expansion framework.\nIt implements the basic algorithm for hypergeometric functions\n(i.e. not Meijer G) and adds a few simple formulae.\n\nsympy/simplify/hyperexpand.py: New file.\nsympy/simplify/tests/test_hyperexpand.py: Likewise.","Tom Bachmann"],["a386494a18d5e1725ae102e81e937b7272e83117","b958c3ef45b756747570442941c30f832e64d46a@web.de","Add documentation for hyperexpand.\n\ndoc/src/modules/simplify.txt: Include description of hyperexpand().\ndoc/src/modules/hyperexpand.txt: New file.","Tom Bachmann"],["5e6eff79fa921929e0f8bbd8ea738e2859e7dfae","b958c3ef45b756747570442941c30f832e64d46a@web.de","Make hyperexpand slightly more clever.\n\nThis commit implements tricks for recognising \"shifted sums\", i.e.\nhypergeometric functions that reduce to lower order + a polynomial\n(e.g. sum(x**n/n!, (n, 3, oo))).\n\nsympy/simplify/hyperexpand.py:\n  (MultOperator) New operator.\n  (try_shifted_sum) New function.\n  (_hyperexpand) Try it.","Tom Bachmann"],["5785b353b7eb5f7939feda9fd56bf318c67793e1","b958c3ef45b756747570442941c30f832e64d46a@web.de","Improve find_instantiations\n\nThis can now handle all cases in the tests, but it is still far from perfect.\nIt is also (predictably) quite slow. But for it is almost never the bottleneck.\n\nsympy/simplify/hyperexpand.py:\n  (IndexPair.reachable) Rename to ...\n  (IndexPair.difficulty) ... this. Also compute difficulty.\n  (Formula.find_instantiations) Try all permutations.\n                                Also try to be clever about numerators.\n                                Finally try some origins nearby, they might be\n                                quicker.\n  (Formula.is_suitable) Throw out whacky instantiations with nan or oo.\n  (FormulaCollection.lookup_origin) Look for nearest origin.","Tom Bachmann"],["9e852b9473187a26e30d9758adb7857ac3f69097","b958c3ef45b756747570442941c30f832e64d46a@web.de","Extend hypergeometric tables.\n\nThis is a WIP commit that will be extended as need arises, until I get around\nto putting in more extensive tables.\n\nTODO\n* 3F2 starting from page 431\n* 4F3, etc\n* add erfi function?\n* good bases\n* test more common forms (e.g. bessel)","Tom Bachmann"],["4d6a5dfc03bda78812af473b4033337cdac72589","b958c3ef45b756747570442941c30f832e64d46a@web.de","Allow Booleans in Piecewise conditions.\n\n(Piecewise.__new__) Allow Boolean, not only bool.","Tom Bachmann"],["72eeb0ff5d722aa1c74634a3bddacc463b624adc","b958c3ef45b756747570442941c30f832e64d46a@web.de","Implement summation using hypergeometric functions.\n\nsympy/concrete/summations.py:\n  (eval_sum_hyper) New function.\n  (eval_sum_symbolic) Try eval_sum_hyper if all else fails.\n\nsympy/concrete/tests/test_sums_products.py:\n  (test_hypersum) New test.\n\nTODO\n* because of the way the rest of the summation stuff works, x**n comes out ugly\n* atan series comes out as logs (probably not much that can be done here)\n* testing the Piecewise results is ...","Tom Bachmann"],["6808c6c8882e9aa6eb8fa8ba86cd86fb58b20b14","b958c3ef45b756747570442941c30f832e64d46a@web.de","Handle polynomial cases.\n\nsympy/simplify/hyperexpand.py:\n  (try_polynomial) New function.\n  (compute_buckets) Don't raise if zero.\n  (ReduceOrder.__init__) Allow b+n == 0.\n  (_hyperexpand) Call try_polynomial.\n\nsympy/simplify/tests/test_hyperexpand.py:\n  (test_polynomial) New test for this.","Tom Bachmann"],["01ada206629f2f47d52169976b4729c3cafc35ce","b958c3ef45b756747570442941c30f832e64d46a@web.de","Start expansion of meijer g functions.\n\nTODO:\n* more tests\n\nsympy/simplify/hyperexpand.py:\n  (IndexQuadruple) New class.\n  (ReduceOrder._meijer) New helper classmethod.\n  (ReduceOrder.meijer_minus) New constructor\n  (ReduceOrder.meijer_plus) Likewise.\n  (reduce_order) Move with more general parameters to ...\n  (_reduce_order) ... here. Also fix a bug.\n  (reduce_order) Now a wrapper for _reduce_order.\n  (reduce_order_meijer) New wrapper for _reduce_order.\n  (_hyperexpand) Accept no argument ops0.\n  (_meijergexpand) New function.\n  (hyperexpand) Call _meijergexpand as well. Add parameter allow_hyper.\n\nsympy/simplify/tests/test_hyperexpand.py:\n  (test_meijerg) New test. Quite fragile.\n  (can_do_meijer) New helper.\n  (test_meijerg_expand) New test.\n  (test_meijerg_expand_fail) Likewise.","Tom Bachmann"],["e5cb706a27f871cbf7446b4cc8b09bd58424588d","b958c3ef45b756747570442941c30f832e64d46a@web.de","Implement eval_expand_func for hyper, meijer.\n\nsympy/functions/special/hyper.py:\n  (hyper._eval_expand_func) New method.\n  (meijerg._eval_expand_func) Likewise.\n\nsympy/functions/special/tests/test_hyper.py:\n  (test_expand_func) New test.","Tom Bachmann"],["dc55cd44d7dc6a6fac4a76bf6fce4cdc7124d16a","b958c3ef45b756747570442941c30f832e64d46a@web.de","Extend hyper and meijerg docstrings.","Tom Bachmann"]],"ref":"refs/heads/gsoc","size":13,"head":"dc55cd44d7dc6a6fac4a76bf6fce4cdc7124d16a","push_id":32627725}