Defining rules for Jacobi functions?



In the context of hypergeometic functions, I've been thinking about
this problem too. For every identity in Abramowitz and Stegun and
Gradsteyn-Rhyzik do we want to invent a name for the rule? What would
that look like and how useful would it be? How could we organize this
so that it is useful and easy to use?


At least A&S is online:

(%i2) abramowitz_id(hypergeometric([a,b],[c], x), "15.3.3");
(%o2) hypergeometric([c-a,c-b],[c],x)*(1-x)^(c-b-a)


/* Gauss hypergeometric transformations */

hypergeometric_order(p,q) := [length(p), length(q)];

abramowitz_id(e, t) := block([sublis_apply_lambda : true],
  t : function_identity[t],
  if t = false then e else subst([t], e));

function_identity[otherwise]:= false;

function_identity["15.3.3"] : 'hypergeometric = lambda([p,q,x], 
block([a,b,c],
    if hypergeometric_order(p,q) = [2,1] then (
      a : first(p),
      b : second(p),
      c : first(q),
      (1 - x)^(c-a-b) * hypergeometric([c-a, c-b],[c],x))
    else funmake('hypergeometric, [p,q,x])));

Barton

maxima-bounces at math.utexas.edu wrote on 03/05/2009 09:59:58 AM:

> [image removed] 
> 
> [Maxima] Defining rules for Jacobi functions?
> 
> Raymond Toy 
> 
> to:
> 
> Maxima List
> 
> 03/05/2009 10:01 AM
> 
> Sent by:
> 
> maxima-bounces at math.utexas.edu
> 
> 
> I'd like to define some rules to convert some Jacobi elliptic
> functions to other forms, and I don't know how. :-)
> 
> defrule(jsc, jacobi_sc(u,m), jacobi_sn(u,m)/jacobi_cn(u,m));
> 
> This works great:
> 
> apply1(sqrt(1+jacobi_sc(u,m)^2), jsc) ->
> 
> sqrt(1+jacobi_sn(u,m)^2/jacobi_cn(u,m)^2)
> 
> This doesn't work:
> 
> apply1(jacobi_sc(x/b, 1-b^2/a^2), jsc) ->
> 
> jacobi_sc(x/b,1-b^2/a^2)
> 
> How can I define such a rule?  Do I need to use
> tellsimp/tellsimpafter?  I don't want it applied all the time; I want
> it applied only when I explicitly say so.
> 
> Thanks,
> 
> Ray
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima