math::constants(n)             Tcl Math Library             math::constants(n)



______________________________________________________________________________

NAME
       math::constants - Mathematical and numerical constants

SYNOPSIS
       package require Tcl  ?8.3?

       package require math::constants  ?1.0.1?

       ::math::constants::constants args

       ::math::constants::print-constants args

_________________________________________________________________

DESCRIPTION
       This package defines some common mathematical and numerical constants.
       By using the package you get consistent values for numbers like pi and
       ln(10).

       It defines two commands:

       o      One for importing the constants

       o      One for reporting which constants are defined and what values
              they actually have.

       The motivation for this package is that quite often, with
       (mathematical) computations, you need a good approximation to, say, the
       ratio of degrees to radians. You can, of course, define this like:


                  variable radtodeg [expr {180.0/(4.0*atan(1.0))}]

       and use the variable radtodeg whenever you need the conversion.

       This has two drawbacks:

       o      You need to remember the proper formula or value and that is
              error-prone.

       o      Especially with the use of mathematical functions like atan you
              assume that they have been accurately implemented. This is
              seldom or never the case and for each platform you can get
              subtle differences.

       Here is the way you can do it with the math::constants package:


                  package require math::constants
                  ::math::constants::constants radtodeg degtorad

       which creates two variables, radtodeg and (its reciprocal) degtorad in
       the calling namespace.

       Constants that have been defined (their values are mostly taken from
       mathematical tables with more precision than usually can be handled)
       include:

       o      basic constants like pi, e, gamma (Euler's constant)

       o      derived values like ln(10) and sqrt(2)

       o      purely numerical values such as 1/3 that are included for
              convenience and for the fact that certain seemingly trivial
              computations like:


                  set value [expr {3.0*$onethird}]


              give exactly the value you expect (if IEEE arithmetic is
              available).

PROCEDURES
       The package defines the following public procedures:

       ::math::constants::constants args
              Import the constants whose names are given as arguments


       ::math::constants::print-constants args
              Print the constants whose names are given as arguments on the
              screen (name, value and description) or, if no arguments are
              given, print all defined constants. This is mainly a convenience
              procedure.

BUGS, IDEAS, FEEDBACK
       This document, and the package it describes, will undoubtedly contain
       bugs and other problems.  Please report such in the category math ::
       constants of the Tcllib SF Trackers
       [http://sourceforge.net/tracker/?group_id=12883].  Please also report
       any ideas for enhancements you may have for either package and/or
       documentation.

KEYWORDS
       constants, degrees, e, math, pi, radians

CATEGORY
       Mathematics

COPYRIGHT
       Copyright (c) 2004 Arjen Markus <arjenmarkus@users.sourceforge.net>




math                                 1.0.1                  math::constants(n)
