#6371: Implement Riemann theta functions
-----------------------------------------------+----------------------------
Reporter: ncalexan | Owner: cswiercz
Type: enhancement | Status: needs_work
Priority: minor | Milestone: sage-4.8
Component: numerical | Keywords: riemann theta
klein
Work_issues: | Upstream: N/A
Reviewer: Marco Streng, Bernard Deconinck | Author: Nick
Alexander, Chris Swierczewski
Merged: | Dependencies:
-----------------------------------------------+----------------------------
Comment(by cswiercz):
Hello mstreng,
Replying to [comment:31 mstreng]:
> I don't know much about {{{BuiltinFunction}}}, but I suspect that it
isn't meant for what you are trying to do. All the examples that I know of
{{{BuiltinFunction}}} are single fixed functions, independent of any
parameters, such as cos, min, max, {{{IndefiniteIntegral}}}, Gamma,
dirac_delta, etc.
It was my misunderstanding that {{{BuiltinFunction}}} is necessary for
doing symbolic manipulation. My only reason for using it is so I can
compute derivatives, etc. If you know of an alternate way to enable
symbolics then I'd love to hear about it!
> Your objects however depend on a parameter Omega, and are functions only
of z. They are maps {{{theta(Omega): CC^g --> CC : z |--> theta(z)}}}.
This will not be a "built-in function of Sage" for every Omega, so it does
not sound to me like this should be a {{{BuiltinFunction}}} object. Maybe
the memory leak is caused by this.
I'll experiment with the code and see if this is an issue.
In practice, $\Omega$ is treated more as a parameter than an argument of
the Riemann theta function. That is, $\Omega$ is usually fixed and $z$
varies. Several users of my code would like to see this behavior be
reflected by having the Riemann theta function be "initialized" by this
matrix.
However, if memory leaks are unavoidable in this context then I suppose
I'll just have to make $\Omega$ behave like an argument no different from
$z$.
> The function {{{theta: CC^g x H_g --> CC : (z, Omega) |--> theta(z,
Omega)}}} definitely make sense as a built-in function, but not a function
{{{theta(Omega) : CC^g --> C}}} that depends on Omega. In other words, if
you have a function for which Omega is not a parameter but an actual
variable, then that would make a good built-in function.
Makes sense.
> ps. Could you make sure you break the lines in the patch at 79
characters?
Of course! (As an in-terminal emacs user I usually try to do this anyway.)
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6371#comment:32>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.