Singular https://www.singular.uni-kl.de/forum/ |
|
Symbolic computation in a procedure https://www.singular.uni-kl.de/forum/viewtopic.php?f=10&t=2574 |
Page 1 of 1 |
Author: | jcapcotemp [ Mon Feb 20, 2017 11:52 am ] |
Post subject: | Symbolic computation in a procedure |
Hi, I am new to singular and have much more experience in mathematica and maple. One thing that separates singular from the other CAS I know is that indeterminates (I call them "symbols") have to be iniitated in a ring before doing any kind of algebra. Now suppose I create a procedure, in here it seems that singular does not care if the ring variables have not been defined. But what confuses me is that the following does not work Code: proc test123() { return v(1)*v(2); } ring A = 0,(v(1..2)),dp; test123(); I'm not really sure how to use the ring variables in the procedure and the documentation does not make me any wiser. Any help would be appreciated. I am trying to ports most of my codes (algebraic geometry for kinematics) to singular because this gives me the opportunity to continue using a free CAS and distribute this to interested people (without requiring them to have maple) and I am slowly getting annoyed of maples slowness (commandline execution gets slower after every new version of maple and older maple are known to be difficult when operating system updates). I also like and feel more comfortable with the C/C++ structure of singular. |
Author: | gorzel [ Mon Feb 20, 2017 3:18 pm ] |
Post subject: | Re: Symbolic computation in a procedure |
Almost any command in Singular needs to be called with (may be empty) parentheses. The return command is not exception from this rule. So put the ( ), and it works as desired. Code: > proc test123() { return(v(1)*v(2)); } > ring A = 0,(v(1..2)),dp; > test123(); v(1)*v(2) Hint: To make this proc independent of the names of the variables, write: Code: > proc test1234() {
return(var(1)*var(2)); } > ring rdp = 0,(x,y),dp; > test1234(); xy |
Page 1 of 1 | All times are UTC + 1 hour [ DST ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |