|
ActiveTcl User Guide
|
|
|
[ Main table Of Contents | Tcllib Table Of Contents | Tcllib Index ]
math::constants(n) 1.0 "Math"
math::constants - Mathematical and numerical constants
TABLE OF
CONTENTS
SYNOPSIS
DESCRIPTION
PROCEDURES
KEYWORDS
COPYRIGHT
package require Tcl ?8.3?
package require math::constants ?1.0?
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:
- One for importing the constants
- 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:
- You need to remember the proper formula or value and that is
error-prone.
- 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:
- basic constants like pi, e, gamma (Euler's constant)
- derived values like ln(10) and sqrt(2)
- 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).
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.
constants , degrees , e , math , pi , radians
Copyright © 2004 Arjen Markus
<arjenmarkus@users.sourceforge.net>