1mathfunc(n)               Tcl Mathematical Functions               mathfunc(n)
2
3
4
5______________________________________________________________________________
6

NAME

8       mathfunc - Mathematical functions for Tcl expressions
9

SYNOPSIS

11       package require Tcl 8.5
12
13       ::tcl::mathfunc::abs arg
14       ::tcl::mathfunc::acos arg
15       ::tcl::mathfunc::asin arg
16       ::tcl::mathfunc::atan arg
17       ::tcl::mathfunc::atan2 y x
18       ::tcl::mathfunc::bool arg
19       ::tcl::mathfunc::ceil arg
20       ::tcl::mathfunc::cos arg
21       ::tcl::mathfunc::cosh arg
22       ::tcl::mathfunc::double arg
23       ::tcl::mathfunc::entier arg
24       ::tcl::mathfunc::exp arg
25       ::tcl::mathfunc::floor arg
26       ::tcl::mathfunc::fmod x y
27       ::tcl::mathfunc::hypot x y
28       ::tcl::mathfunc::int arg
29       ::tcl::mathfunc::isqrt arg
30       ::tcl::mathfunc::log arg
31       ::tcl::mathfunc::log10 arg
32       ::tcl::mathfunc::max arg ?arg ...?
33       ::tcl::mathfunc::min arg ?arg ...?
34       ::tcl::mathfunc::pow x y
35       ::tcl::mathfunc::rand
36       ::tcl::mathfunc::round arg
37       ::tcl::mathfunc::sin arg
38       ::tcl::mathfunc::sinh arg
39       ::tcl::mathfunc::sqrt arg
40       ::tcl::mathfunc::srand arg
41       ::tcl::mathfunc::tan arg
42       ::tcl::mathfunc::tanh arg
43       ::tcl::mathfunc::wide arg
44
45______________________________________________________________________________
46

DESCRIPTION

48       The  expr command handles mathematical functions of the form sin($x) or
49       atan2($y,$x) by converting  them  to  calls  of  the  form  [tcl::math‐
50       func::sin  [expr  {$x}]]  or  [tcl::mathfunc::atan2  [expr  {$y}] [expr
51       {$x}]].  A number of math functions are available by default within the
52       namespace  ::tcl::mathfunc; these functions are also available for code
53       apart from expr, by invoking the given commands directly.
54
55       Tcl supports the following mathematical functions in  expressions,  all
56       of  which  work  solely  with  floating-point  numbers unless otherwise
57       noted:
58
59              abs         acos        asin       atan
60              atan2       bool        ceil       cos
61              cosh        double      entier     exp
62              floor       fmod        hypot      int
63              isqrt       log         log10      max
64              min         pow         rand       round
65              sin         sinh        sqrt       srand
66              tan         tanh        wide
67
68
69       In addition to these predefined functions, applications may define  ad‐
70       ditional  functions  by using proc (or any other method, such as interp
71       alias or Tcl_CreateObjCommand) to define new commands in the tcl::math‐
72       func  namespace.   In  addition,  an  obsolete interface named Tcl_Cre‐
73       ateMathFunc() is available to extensions that are  written  in  C.  The
74       latter interface is not recommended for new implementations.
75
76   DETAILED DEFINITIONS
77       abs arg
78              Returns the absolute value of arg.  Arg may be either integer or
79              floating-point, and the result is returned in the same form.
80
81       acos arg
82              Returns the arc cosine of arg, in the range [0,pi] radians.  Arg
83              should be in the range [-1,1].
84
85       asin arg
86              Returns  the arc sine of arg, in the range [-pi/2,pi/2] radians.
87              Arg should be in the range [-1,1].
88
89       atan arg
90              Returns the arc tangent of arg, in the range [-pi/2,pi/2]  radi‐
91              ans.
92
93       atan2 y x
94              Returns  the  arc tangent of y/x, in the range [-pi,pi] radians.
95              x and y cannot both be 0.  If x  is  greater  than  0,  this  is
96              equivalent to “atan [expr {y/x}]”.
97
98       bool arg
99              Accepts any numeric value, or any string acceptable to string is
100              boolean, and returns the corresponding boolean  value  0  or  1.
101              Non-zero  numbers  are  true.  Other numbers are false.  Non-nu‐
102              meric strings produce boolean value in agreement with string  is
103              true and string is false.
104
105       ceil arg
106              Returns  the smallest integral floating-point value (i.e. with a
107              zero fractional part) not less than arg.  The  argument  may  be
108              any numeric value.
109
110       cos arg
111              Returns the cosine of arg, measured in radians.
112
113       cosh arg
114              Returns the hyperbolic cosine of arg.  If the result would cause
115              an overflow, an error is returned.
116
117       double arg
118              The argument may be any numeric value, If  arg  is  a  floating-
119              point  value,  returns  arg, otherwise converts arg to floating-
120              point and returns the converted value.  May return Inf  or  -Inf
121              when  the argument is a numeric value that exceeds the floating-
122              point range.
123
124       entier arg
125              The argument may be any numeric value.  The integer part of  arg
126              is  determined and returned.  The integer range returned by this
127              function is unlimited, unlike int and wide which truncate  their
128              range to fit in particular storage widths.
129
130       exp arg
131              Returns  the  exponential of arg, defined as e**arg.  If the re‐
132              sult would cause an overflow, an error is returned.
133
134       floor arg
135              Returns the largest integral floating-point value (i.e.  with  a
136              zero fractional part) not greater than arg.  The argument may be
137              any numeric value.
138
139       fmod x y
140              Returns the floating-point remainder of the division of x by  y.
141              If y is 0, an error is returned.
142
143       hypot x y
144              Computes  the  length of the hypotenuse of a right-angled trian‐
145              gle, approximately “sqrt [expr {x*x+y*y}]” except for being more
146              numerically  stable  when  the  two arguments have substantially
147              different magnitudes.
148
149       int arg
150              The argument may be any numeric value.  The integer part of  arg
151              is determined, and then the low order bits of that integer value
152              up to the machine word size are returned as  an  integer  value.
153              For  reference,  the  number  of  bytes  in the machine word are
154              stored in the wordSize element of the tcl_platform array.
155
156       isqrt arg
157              Computes the integer part of the square root of arg.   Arg  must
158              be  a positive value, either an integer or a floating point num‐
159              ber.  Unlike sqrt, which is limited to the precision of a float‐
160              ing point number, isqrt will return a result of arbitrary preci‐
161              sion.
162
163       log arg
164              Returns the natural logarithm of arg.  Arg must  be  a  positive
165              value.
166
167       log10 arg
168              Returns  the  base  10 logarithm of arg.  Arg must be a positive
169              value.
170
171       max arg ...
172              Accepts one or more numeric arguments.  Returns the one argument
173              with the greatest value.
174
175       min arg ...
176              Accepts one or more numeric arguments.  Returns the one argument
177              with the least value.
178
179       pow x y
180              Computes the value of x raised to the power y.  If  x  is  nega‐
181              tive, y must be an integer value.
182
183       rand   Returns a pseudo-random floating-point value in the range (0,1).
184              The generator algorithm is a simple linear congruential  genera‐
185              tor that is not cryptographically secure.  Each result from rand
186              completely determines all future results from  subsequent  calls
187              to  rand,  so  rand should not be used to generate a sequence of
188              secrets, such as one-time passwords.  The seed of the  generator
189              is  initialized from the internal clock of the machine or may be
190              set with the srand function.
191
192       round arg
193              If arg is an integer value, returns arg, otherwise converts  arg
194              to integer by rounding and returns the converted value.
195
196       sin arg
197              Returns the sine of arg, measured in radians.
198
199       sinh arg
200              Returns  the  hyperbolic sine of arg.  If the result would cause
201              an overflow, an error is returned.
202
203       sqrt arg
204              The argument may be any non-negative numeric value.   Returns  a
205              floating-point value that is the square root of arg.  May return
206              Inf when the argument is a numeric value that exceeds the square
207              of the maximum value of the floating-point range.
208
209       srand arg
210              The arg, which must be an integer, is used to reset the seed for
211              the random number generator of rand.  Returns the  first  random
212              number  (see rand) from that seed.  Each interpreter has its own
213              seed.
214
215       tan arg
216              Returns the tangent of arg, measured in radians.
217
218       tanh arg
219              Returns the hyperbolic tangent of arg.
220
221       wide arg
222              The argument may be any numeric value.  The integer part of  arg
223              is  determined,  and  then the low order 64 bits of that integer
224              value are returned as an integer value.
225

SEE ALSO

227       expr(n), mathop(n), namespace(n)
228
230       Copyright © 1993 The Regents of the University of California.
231       Copyright © 1994-2000 Sun Microsystems Incorporated.
232       Copyright © 2005, 2006 Kevin B. Kenny <kennykb@acm.org>.
233
234
235
236Tcl                                   8.5                          mathfunc(n)
Impressum