
I am currently working on a New and Improved version of
PhysCalc, a total rewrite using C++ templates, lex and yacc,
and a small lisp engine I am writing.  It is of course not
at all ready for release yet.  I'm doing development work
under both Linux and Win95.

Planned features include:

    * Continued use of command line interface & GNU GPL.

    * Improved expression evaluation:

        - make exponentiation less of a kludge

        - minimal distinctions made between units,
            variables, and functions: any can be used in
            place of the other.  For example, "5 * meters"
            will become legal syntax, and functions without
            arguments can be used syntactically the same as
            variables.

        - implicit multiplication ("a b" means "a * b").
          Thus "5 meters" is literally the same as "5 *
          meters".  Signed numbers must be surrounded by
          parentheses or multiplication must be explicit.

        - More object-oriented style: a variable can hold
            values for many different aspects of something,
            with other values being automatically computed
            as needed.  For example, if Sphere.Mass and
            Sphere.Volume are set, then Sphere.Density can
            be deduced.  Default behaviors/formulas are
            programmable via some sort of "Default" object.

        - The Linux version will use the GNU "Rational"
            class to provide "infinite" precision math
            (everything will be internally represented as
            rationals, not reals.  The GNU Rational class is
            in turn based on an Integer class that can work
            with 128 kilobyte integers).  Since templates
            are used, it should be easy to change and
            recompile with the (GNU-style licensed) numeric
            class of your choice.

    * C++ code designed to allow easy inclusion of unit
        conversion (but not the full expression evaluator)
        into your code to enable easier and safer math, with
        minimal run-time overhead.

    * The lisp engine should allow total programmability, at
        least as far as doing math goes, if not as a general
        purpose language.

Features that should not be too hard to do once the planned features are done:

    * GUI versions

    * Vector, matrix and other new intrinsic capabilities

Other ideas:

    * Put PhysCalc capabilities into a user-friendly spreadsheet application

