Welcome to MathMorphs

Apuntes en Castellano

GemSqueak files

Table of Contents
    What is MathMorphs?
    MathMorphs mailing list [March-5-1999]
    MorphicWrappers and Books [Feb-10-2000] (MW for 2.7)
    Linear Algebra project [Jul-19-1999]
    Tutorials [Oct-31-1998]
    Classroom notes[Jan-23-1999]
    Announcements (currently working on...) [Dec-31-1998]
    Classroom news [Dec-13-1998]
    Projects (downloads) [Mar-5-1999] (Linear Recurrent Sequences + New function plotter package)
    MathMorph Examples (sources of inspiration) [Dec-13-1998]

What is MathMorphs?

MathMorphs is a new project where we combine Mathematics and Smalltalk. Our goal is to explore and promote the use of Smalltalk as a major tool in the mathematical work. "Work" includes studying, teaching and research; three forms of the same activity of understanding.

While all implementations of Smalltalk are equivalent for doing Math in a pure object environment, the spirit of Squeak as an open project is close to our own idiosyncrasy. Also, as the name of our project suggests, the Morphic interface to Squeak plays an important role in our work and the way we like to think in Math.

MathMorphs mailing list

To subscribe to our mailing list, send a mail to majordomo@dm.uba.ar with the text

             SUBSCRIBE MathMorphs

in the body (not the subject).

MathMorphs mailing list members [March 5, 1999]

Here is the list of subscribers to the MathMorphs mailing list

MorphicWrappers and Books

[Last updated: February 10, 2000 (MW for 2.7) ]. Don't write 'self' when typing on air!
In the classroom and in our daily work we use MorphicWrappers, CodeStringMorphs, RequestBoxMorphs, ClassMorphicWrappers, BitmappedMorphicWrappers and more. With MorphicWrappers you can put any object in a MorphicWorld. Simply clic on the world an write a Smalltalk expression, once you press enter the resulting object will be included in your world. Clic here to downoload MorphicWrappers package

Linear Algebra project

Clic here to visit our Linear Algebra project [Last updated on Jul-19-1999]

If you are new to Squeak or Smalltalk, here you have a Squeak Smalltalk Dictionary (zip format). Before reading it as a morph from the file list (world menu ->open -> file list -> load as morph), fileIn the MorphicWrappers and the change set in the zip file.

Classroom notes
[Last updated: December 4, 1998] We, at the University of Buenos Aires, are developing the MathMorph project in classroom. Download the MorphicWrappers and this Permutations.zip. The fileIn the change set and read the Permutations Book. To become a good pupil '-) you should work on the exercises of [section 5.1.1, The Art of Computer Programming, Volume 3, Sorting and Searching, Second Edition, by D.E.Knuth]. Try, for example, exercises 6, 7, 8, 9, 10, 11, 12 and 28.
[Last updated Nov-20-1998]

This is the first book about Linear Algebra.

The current Linear Algebra project has its own page...

This is the ModularInteger.zip. It contains a book and a change set where ModularInteger are implemented.
The archive MonomialOrderings.zip contains a book about monomial orderings. The book documents part of the project about Algebraic Geometry by Pablo Malavolta and Luciano Notarfrancesco.

Announcements (currently working on...)

We have plans to begin PhysicMorphs experiments guided by Ariel Schwartzman. Up to now the only we have is the CannonMorph :-). Still we are optimistic and think that Ariel is going to teach us interesting things.

Gabriel is working on Metric Spaces: spaces, distances, continue functions, open and colsed sets, etc. He is using epsilon-delta proofs in Squeak!
You can download the current change set MetricSpaces.zip [Dec-31-1998]

Richie is working on a Fibbonacci package [Dec-15-1998: zip format].

Leandro continues with his Linear Algebra Project. Here is a preliminary version for VisualSmalltalk.
And here is the last available version for Squeak [Dec-31-1998]

Classroom news

MathMorphs summer meeting
On December 12, 1998 (saturday) we have had a MathMorph meeting. Gabriel showed us his progress and ideas about the MetricSapces project (Leandro offered to help him with MathFunctions, MathSets, SetAmbients, etc). Andres showed his impressive FunctionPlotters. Pablo (Kafka) talked about some ideas he is trying to develop including Theorems and Propositions in Squeak. Enrique and Pablo are going to work together on a Groups project starting from the work initiated by Luciano.

Classes are over in 1998
The 1998 MathMorphs course has finished! During the summer [we are in the south 8-)] we will continue working on our projects.

Invited to talk
The MathMorphs group was invited to talk about Squeak and Mathematics by colleague Leonardo Echagüe in his classroom on December 4, 1998. They are currently using Maple and showed interest in our project.

Projects (Downloads)

Please, send us your project. We will include it here.

[Last updated Mar-5-1999] Linear Recurrent Sequences (by Eric). Visit the sequnces page and download the code and documentation.

Included in this project:
  Fibonacci sequences
  Exponential recurrences
  Shifted exponential recurrences
  Fibonacci squared

and more: arithmetic operations, minimal and characteristic polynomials, companion matrixes, etc. Documentation in PostScript and dvi formats.
[Last updated Mar-5-1999] Function Plotters (by Andres). Visit the Function Plotter Gallery and download the change set (31 Kb).

Some features:
  Accomodates several plotting modes
  Alpha blending fill to x axis = area fill
  3 volume simulation modes
  Easy manipulation of double click menues
  Domain assignment for each function
  XYPlotter examples, more ThetaRhoPlotter examples

Most important features since last version.
  Completely new PlottingEngine. More elegant. More powerful.
  A new plotting mode, the discrete derivative overplot.
  New double click menu item, save as... (only to GIF right now, expect improvement in this).
  Several aspect ratio sizes for plots added to the double click menu.
  A bunch of silly bugfixes like forgetting ^ and so.

Projective Geometry (by Javier & Luciano)

From the abstract:
"We propose a Projective Geometry framework. Our project lies over the Linear Algebra objects that were constructed during the MathMorphs course."

This project has its own page.

Note that in 2.3+ you will need the CoercionTweaks bellow (or ask the authors for a new version ;-)

TeX fileOut (by Andres)

Click here to download (11 Kb). With TeX fileOut you can fileOut categories, classes and methods in source TeX format.

CoercionTweaks (by Dan Ingalls).

I love the MathMorphs work.  I haven't figured out yet who exactly is doing what, so I'm sending you this message as a representative.
I'm aware that the new coercion protocol will break a lot of the MathMorphs examples. I want to let you know that I am looking into providing a compatibility package for you (*). However, if you plan to convert soon anyway, maybe it is not worth it.  Anyway, let me know because I absolutely want to support your work and will do whatever is needed.
By the way I am attaching another fileIn that further simplifying things by merging adaptToInteger/Float/Fraction for any conversions outside of Number (ie Complex only has to support adaptToNumber).
Keep up the good work, and let me know how I can help with the transition to 2.3.
(*) I think I have a doit that will generate all the needed methods, but it won't rewrite the existing code.

Algebraic Numbers (by Richie and Ariel). This project extends the Number hierarchy of Squeak with (real) algebraic numbers. The project has its own page (Spanish version only) clic here to enter. The Squeak code is in English and well documented AlgebraicNumbers.zip [Dec-15-1998: zip format].

You should try the coercion tweaks (above) to jump from 2.2 to 2.3+.

Graphs and Turing Machines. Create a graph in a Morphic World and observe how the nodes accommodate themselves trying to find the equilibrium. Form graphs for collections, hierarchies and Turing programs. Write a Turing machine program and let it run on a Morphic World. Clic on to download TuringMachines.zip [Dec-15-1998: zip format] and Graph.zip [Dec-15-1998: zip format].
Finite Groups. A first approach about Finite Groups by Luciano. Here you will find the following classes:
  • Subgroup
  • Homomorphism
  • TranslatedSubgroup (i.e., cosets)
  • GSpace
  • GSpaceByConjugation
  • GSpaceByTranslation
  • TowerOfSubgroups
and beautiful examples including: Quaternions, Roots of unity, Permutations, Alternating Gruop, Symmetric Group, and more!

You should try the coercion tweaks (above) to jump from 2.2 to 2.3+.

Tarski Geometry. Here you will find an implementation of the Cylindrical Algebraic Decomposition algorithm used to decide the truth of Tarski sentences. This project includes Polynomials, Algebraic Numbers, Semialgebraic Sets, etc. The picture shows the category Mathematics-Tarski as implemented by Luciano.
SturmPlotter. A graphic representation of the zeros in a Sturm chain. The Sturm theorem is essential for the implementation of Algebraic Numbers (as we will see soon here). Follow this guided tour.
VibratingStringMorphs An interesting example on how to numerically solve a wave differential equation using Squeak and Morphic.
Algebraic Geometry (Implicitation Problem). This project has its own page.
Probabilities (By Alejandro Tolomei) Random Variables, Statistics, Random Processes, (spec. Markov Chain Solvers and ap. in communications), Discrete Simulation, etc. (The picture shows the category Math-Random Variables in the browser). The project includes demonstrations in Morphic.

More projects, coming soon...