David.
Here in the University of Buenos Aires we have been using Squeak for our mathematical work since version 1.16. Today I begun the third course about Squeak and Mathematic. The results we are obtaining are incredible. Of course we have made algebra (LinearSpaces, LinearTransformations, Matrices, Polynomilas in any number of variables, Algebraic Numbers, FiniteFields, Groebner Basis, SLP representations, Permutations, Groups, Functions, etc) and also Numeric Analysis (Integration, DiferentialEquations, PowerSeries, etc.). Currently we are making our first steps in Physical experiments inside Morphic and, again, the results are terrific. If you are interested, we can share our experiences each other. You are invited to contact us by mail to our MathSqueak list at objetosm@dm.uba.ar.
Saludos, Leandro ----- "Although it is quite possible to write programs which depend on the byte size, this is an illegal act which will not be tolerated" Donald E. Knuth, The Art of Computer Programming, Vol 1.
Hello,
I was working on a project to build a small computer algebra system in Squeak, and have just updated the package that I made available on the web at http://cage.rug.ac.be/~stes/squeak.html.
(I think this would be a good application of Squeak, in mathematics, and I've also added the URL of my package to the Squeak Swiki server at http://minnow.cc.gatech.edu/squeak.20)
There's already some simple things you can do with the package (and more to come) :
Create a BigInt instance,
one := BigInt int:1 1
Make a polynomial z+1,
p := Polynomial scalar:one 1 t := Term scalar:one symbol:'z'exponent:1 'z' p insertTerm:t 'z' + 1
Square the polynomial,
q := p square 'z'^2 + 2 'z' + 1
Add a term in a different variable (to get a multivariate polynomial)
t := Term scalar:one symbol:'a' exponent:1 'a' q insertTerm:t 'z'^2 + 2 'z' + 'a' + 1 q := q square 'z'^4 + 4 'z'^3 + (2 'a' + 6) 'z'^2 + (4 'a' + 4) 'z' + 'a'^2 + 2 'a' + 1
Now convert the polynomial from the recursive representation (where coefficients are polynomials) to the expanded representations, where the polynomial is an (expanded) sum of monomials,
p := q makeExpanded 'z'^4 + 4 'z'^3 + 6 'z'^2 + 4 'z' + 'a'^2 + 2 'a' 'z'^2 + 4 'a' 'z' + 2 'a' + 1
The total degree and order of the polynomial,
p degree 4 q order 0
Get the leading monomial (or term etc.)
p leadingMonomial 'z'^4
Convert back to recursive representation
p makeRecursive 'z'^4 + 4 'z'^3 + (2 'a' + 6) 'z'^2 + (4 'a' + 4) 'z' + 'a'^2 + 2 'a' + 1
I hope to eventually have a good set of 'building blocks' for algebra in Squeak, and then you could use Squeak for other computations as well (group theoretical, for instance).
David.
Leandro,
I just sent email to you to ask you to subscribe me to your mailing list. We should work together and make things available to researchers etc., they will surely be interested in Squeak. "Lisp" systems are traditionally popular for this sort of application, but Squeak certainly seems appropriate for it too! In fact the "type" (class) system of Squeak is of great interest, I think.
On Thu, 27 Aug 1998, Leandro Caniglia wrote:
David.
Here in the University of Buenos Aires we have been using Squeak for our mathematical work since version 1.16. Today I begun the third course about Squeak and Mathematic. The results we are obtaining are incredible. Of course we have made algebra (LinearSpaces, LinearTransformations, Matrices, Polynomilas in any number of variables, Algebraic Numbers, FiniteFields, Groebner Basis, SLP representations, Permutations, Groups, Functions, etc) and also Numeric Analysis (Integration, DiferentialEquations, PowerSeries, etc.). Currently we are making our first steps in Physical experiments inside Morphic and, again, the results are terrific. If you are interested, we can share our experiences each other. You are invited to contact us by mail to our MathSqueak list at objetosm@dm.uba.ar.
Saludos, Leandro
"Although it is quite possible to write programs which depend on the byte size, this is an illegal act which will not be tolerated" Donald E. Knuth, The Art of Computer Programming, Vol 1.
Hello,
I was working on a project to build a small computer algebra system in Squeak, and have just updated the package that I made available on the web at http://cage.rug.ac.be/~stes/squeak.html.
(I think this would be a good application of Squeak, in mathematics, and I've also added the URL of my package to the Squeak Swiki server at http://minnow.cc.gatech.edu/squeak.20)
There's already some simple things you can do with the package (and more to come) :
Create a BigInt instance,
one := BigInt int:1 1
Make a polynomial z+1,
p := Polynomial scalar:one 1 t := Term scalar:one symbol:'z'exponent:1 'z' p insertTerm:t 'z' + 1
Square the polynomial,
q := p square 'z'^2 + 2 'z' + 1
Add a term in a different variable (to get a multivariate polynomial)
t := Term scalar:one symbol:'a' exponent:1 'a' q insertTerm:t 'z'^2 + 2 'z' + 'a' + 1 q := q square 'z'^4 + 4 'z'^3 + (2 'a' + 6) 'z'^2 + (4 'a' + 4) 'z' + 'a'^2 + 2 'a' + 1
Now convert the polynomial from the recursive representation (where coefficients are polynomials) to the expanded representations, where the polynomial is an (expanded) sum of monomials,
p := q makeExpanded 'z'^4 + 4 'z'^3 + 6 'z'^2 + 4 'z' + 'a'^2 + 2 'a' 'z'^2 + 4 'a' 'z' + 2 'a' + 1
The total degree and order of the polynomial,
p degree 4 q order 0
Get the leading monomial (or term etc.)
p leadingMonomial 'z'^4
Convert back to recursive representation
p makeRecursive 'z'^4 + 4 'z'^3 + (2 'a' + 6) 'z'^2 + (4 'a' + 4) 'z' + 'a'^2 + 2 'a' + 1
I hope to eventually have a good set of 'building blocks' for algebra in Squeak, and then you could use Squeak for other computations as well (group theoretical, for instance).
David.
squeak-dev@lists.squeakfoundation.org