Difference between revisions of "User:Malcolm/wip/Sage WW Notes"
< User:Malcolm | wip
Jump to navigation
Jump to search
Line 21: | Line 21: | ||
** <tt>[x-(-2)]*(x-2)*(x-4)</tt> in <tt>normalStrings</tt> |
** <tt>[x-(-2)]*(x-2)*(x-4)</tt> in <tt>normalStrings</tt> |
||
** <tt>\left(x-\left(-2\right)\right)\!\left(x-2\right)\!\left(x-4\right)</tt> in <tt>texStrings</tt> |
** <tt>\left(x-\left(-2\right)\right)\!\left(x-2\right)\!\left(x-4\right)</tt> in <tt>texStrings</tt> |
||
+ | None of theses are suitable for passing to Sage. |
||
+ | |||
Possible solution: |
Possible solution: |
||
# Use a construction like |
# Use a construction like |
||
Line 26: | Line 28: | ||
#: <source> $f = Compute($f_raw); </source> |
#: <source> $f = Compute($f_raw); </source> |
||
And use <tt>$f_raw</tt> to pass to Sage and <tt>$f</tt> to work with in WW. |
And use <tt>$f_raw</tt> to pass to Sage and <tt>$f</tt> to work with in WW. |
||
− | # TODO investigate using <tt>string()</tt>, but setting some flags noparen |
+ | # <s>TODO investigate using <tt>string()</tt>, but setting some flags noparen </s> |
+ | * After |
||
+ | *: <source> Context("Numeric"); </source> |
||
+ | *: <source> $g = Compute("(x-(-2))*(x-2)*(x-4)"); </source> |
||
+ | *: <tt> $g->with(showExtraParens=>0)->string()</tt> produces <tt>[x-(-2)]*(x-2)*(x-4)</tt> |
||
+ | *: <tt>$g->with(showExtraParens=>0)->stringify()</tt> produces <tt>[x-(-2)]*(x-2)*(x-4)</tt> in <tt>normalStrings</tt> |
||
+ | * But after |
||
+ | *: <source>Context()->flags->set(showExtraParens=>0);</source> |
||
+ | *: <tt>$g->stringify()</tt> produces <tt>(x--2)*(x-2)*(x-4)</tt> which is in the right direction. |
Revision as of 14:58, 12 June 2012
Notes on embedding Sage into WW problems using the Sage cell server - May/June 2012
When passing functions to Sage, if the function is defined as a math object problems can occur since it can happen that none of <source lang="perl"> $f $f->string() $f->stringify() $f->TeX() </source> return the orginal string used to define the function.
For example with the set up: <source lang="perl"> Context("Numeric"); $f = Compute("(x-(-2))*(x-2)*(x-4)"); </source> then
- $f->string() produces [x-(-2)]*(x-2)*(x-4)
- $f->TeX() produces \left(x-\left(-2\right)\right)\!\left(x-2\right)\!\left(x-4\right)
- $f->stringify() produces:
- [x-(-2)]*(x-2)*(x-4) in normalStrings
- \left(x-\left(-2\right)\right)\!\left(x-2\right)\!\left(x-4\right) in texStrings
None of theses are suitable for passing to Sage.
Possible solution:
- Use a construction like
- <source> $f_raw = "(x-(-2))*(x-2)*(x-4)";</source>
- <source> $f = Compute($f_raw); </source>
And use $f_raw to pass to Sage and $f to work with in WW.
TODO investigate using string(), but setting some flags noparen
- After
- <source> Context("Numeric"); </source>
- <source> $g = Compute("(x-(-2))*(x-2)*(x-4)"); </source>
- $g->with(showExtraParens=>0)->string() produces [x-(-2)]*(x-2)*(x-4)
- $g->with(showExtraParens=>0)->stringify() produces [x-(-2)]*(x-2)*(x-4) in normalStrings
- But after
- <source>Context()->flags->set(showExtraParens=>0);</source>
- $g->stringify() produces (x--2)*(x-2)*(x-4) which is in the right direction.