NAME
    Math::SimpleVariable - simple representation of mathematical variables

SYNOPSIS
      use Math::SimpleVariable;

      # Make a variable
      my $foo = new Math::SimpleVariable(name => 'foo', value => 0.3);

      # Some of the available accessors
      # Note that many are identical, but you might want to change
      # their behaviour in derived variable classes...
      my $name = $foo->name();       # yields 'foo'
      print $foo->stringify(), "\n"; # prints 'foo'
      my $id = $foo->id();           # yields 'foo'
      my $value = $foo->value();     # yields 0.3
      print $foo->evaluate(), "\n";  # prints 0.3

      # Make a second variable
      my $bar = $foo->clone();
      $bar->{name} = 'bar';      # changes the name (and as a consequence the id())
      print $bar->value(), "\n"; # prints the same value, 0.3

DESCRIPTION
    Math::SimpleVariable is a simple representation of mathematical
    variables, with an obligatory name and an optional value. This class on
    itself might not seem very useful at first sight, but you might want to
    derive different types of variables for some application. That way,
    objects of the derived variable class can be accessed interchangeably
    with the here provided protocols.

    Math::SimpleVariable has two data fields - name and value - that can be
    accessed and modified as if the variable object is a hash. E.g.

        $var->{name} = 'foo';

    sets the name of the object $var to 'foo', and

        my $val = $var->{value};

    reads the value of the $var object into $val.

    In addition, the following accessor methods are available for
    Math::SimpleVariable objects:

    $var->name()
        Returns $var->{name}

    $var->id()
        Returns $var->name() for Math::SimpleVariable objects. The purpose
        of id() is to provide some unique identifier when using variables in
        some higher level concept, e.g. a matrix representation of a set of
        equations. Depending on your needs, you might want to change the
        implementation of id() in derived classes.

    stringify()
        Returns a printable representation of the variable. For
        Math::SimpleVariable objects, returns $var->name(). Again, you might
        want to override this for derived classes.

    value()
        Returns $var->{value}

    evaluate()
        Returns a numerical evaluation of the variable. For
        Math::SimpleVariable objects, returns $var->value(). You might want
        to override this behaviour in derived classes, athough I cannot
        think of any place where this might come in useful :-). evaluate()
        is still there for reasons of orthogonality.

SEE ALSO
    perl(1).

AUTHOR
    Wim Verhaegen <wimv@cpan.org>

COPYRIGHT
    Copyright (C) 2001 Wim Verhaegen. All rights reserved. This program is
    free software; you may redistribute and/or modify it under the same
    terms as Perl itself.

