Thank you Benjamin! I will probably take you up on that offer. On Tuesday, 28 May 2013 12:17:25 UTC-7, Benjamin Jones wrote: > > Awesome! Ping me if you need someone to help with code review. > > -- > Benjamin Jones > benjami...@gmail.com <javascript:> > > > On Tue, May 28, 2013 at 11:48 AM, Eviatar <eviat...@gmail.com<javascript:> > > wrote: > >> Hello, >> >> I am grateful to have been selected as one of the Google Summer of Code >> students for this summer. I will be working on a benchmark framework for >> testing functions over different domains, making symbolic the special >> functions that are not yet, and implementing generalized hypergeometric >> functions. Here are some more details from my application: >> >> 1. Symbolic wrappers >>> A pending patch, ticket >>> #4102<http://trac.sagemath.org/sage_trac/ticket/4102>, >>> will make the Bessel functions symbolic. I will similarly update the rest >>> of the special functions. This will involve defining methods for evaluation >>> and wrapping third-party libraries for handling simplification, >>> integration, etc. >>> >> >> >> From the open-source software listed at the >> DLMF<http://dlmf.nist.gov/software/>, >>> Sage ships with Cephes (although it is not used for anything at the >>> moment), GSL, MPFR, Maxima, PARI/GP, SLATEC (through Maxima), and mpmath. >>> All these except Cephes and SLATEC have existing interfaces, facilitating >>> the wrapping of functionality. >>> The Bessel functions will be made symbolic by #4102, and the Airy >>> functions by the pending >>> #12455<http://trac.sagemath.org/sage_trac/ticket/12455>. >>> hypergeometric_U, spherical_bessel_J, spherical_bessel_Y, >>> spherical_hankel1, spherical_hankel2, spherical_harmonic, elliptic_J, >>> jacobi, inverse_jacobi, elliptic_e, elliptic_ec, elliptic_eu, elliptic_f, >>> elliptic_kc, and elliptic_pi remain to be done. >>> >> >> >> 2. Benchmark framework >>> The benchmark framework is important for determining which backend is >>> appropriate for numeric evaluation of functions on different domains. Due >>> to implementation details, different algorithms will be suited to different >>> regions of the function's domain; for example, hypergeometric_U(-4, 10, >>> 100) is faster with PARI, but hypergeometric_U(-40, -40, 10) is faster >>> with SciPy. Picking the domains will require looking at the algorithm >>> implementation. A benchmark framework will allow Sage to more intelligently >>> decide between the backends depending on input, and also to detect and >>> track regressions. A sufficiently versatile implementation could also be >>> extended to other types of functions in the future. >>> >> >> >> I would begin by building on the benchmark system in tests/benchmark.py. >>> I would create a subclass of Benchmark designed for numerical >>> functions; it would accept arguments of domains on which to test functions, >>> and generate random test values using the underlying rings' >>> random_element method. For example, benchmark_function(gamma, >>> domains=[[1, 10], [50, 60]], ring=ZZ, systems=['maxima', 'sympy'])would >>> benchmark the >>> gamma function on the integer domains [1, 10] and [50,60] using Maxima >>> and SymPy (this is only an example to illustrate the proposed >>> functionality; gamma does not currently have the option to be evaluated >>> with different backends). benchmark_function(gamma, domains=[[-10 - >>> 10*I, 10 - 5*I]], ring=CC) would benchmark gamma on the region of the >>> complex plane bounded by the two points -10 - 10i and 10 - 5i. The current >>> output format of the Benchmark class in benchmark.py should be changed >>> to be machine-readable. >>> >> >> >> After the benchmark framework is completed, I would determine appropriate >>> domains on which to test each of the special functions, and create a >>> benchmark suite. Using the results of these benchmarks, I will modify the >>> functions that have multiple backends to use the optimal one for a given >>> domain >> >> >> >> 3. Hypergeometric functions >>> #2516 <http://trac.sagemath.org/sage_trac/ticket/2516> is going to >>> implement generalized hypergeometric functions. These are a class of >>> holonomic functions, solutions to linear differential equations with >>> polynomial coefficients. Holonomic power series are closed under sum, >>> Cauchy product, and Hadamard product, so these operations could be >>> implemented. Useful references include >>> 1<http://www.risc.jku.at/research/combinat/software/GeneratingFunctions/pub/mallinger96.pdf> >>> and >>> 2<http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.187.6502&rep=rep1&type=pdf> >>> . >> >> >> My mentors for this project are Flavia Stan and Burcin Erocal. >> >> Now is the Community Bonding period; since I am already acquainted with >> Sage and the community I can get to work :) I will be at Sage Days 48 in >> Seattle. >> >> If anyone has any comments, suggestions, or additional ideas please let >> me know. >> >> Thank you, >> Eviatar Bach >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sage-devel" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sage-devel+...@googlegroups.com <javascript:>. >> To post to this group, send email to sage-...@googlegroups.com<javascript:> >> . >> Visit this group at http://groups.google.com/group/sage-devel?hl=en. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > >
-- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at http://groups.google.com/group/sage-devel?hl=en. For more options, visit https://groups.google.com/groups/opt_out.