mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Add new logn(x, n [,eps]) builtin to compute logarithms to base n. Verify that eps arguments (error tolerance arguments that override the default epsilon value) to builtin functions have proper values. Previously the eps argument had little to no value checks for many builtin functions. Document in help files for builtin functions that take eps arguments, the LIMIT range for such eps values.
105 lines
3.2 KiB
Plaintext
105 lines
3.2 KiB
Plaintext
NAME
|
|
epsilon - set or read the stored epsilon value
|
|
|
|
SYNOPSIS
|
|
epsilon([eps])
|
|
|
|
TYPES
|
|
eps 0 < real < 1, defaults to epsilon()
|
|
|
|
return real number greater than 0 and less than 1
|
|
|
|
DESCRIPTION
|
|
Without args, epsilon() returns the current epsilon value.
|
|
|
|
With one arg, epsilon(eps) returns the current epsilon value
|
|
and sets the stored epsilon value to eps.
|
|
|
|
The stored epsilon value is used as default value for eps in
|
|
many functions such as appr(x, eps, rnd), sqrt(x, eps, rnd),
|
|
pi(eps), sin(x, eps), tanh(x, eps), etc.
|
|
|
|
EXAMPLE
|
|
; epsilon(1e-20),;
|
|
; oldeps = epsilon(1e-6)
|
|
; print epsilon(), sqrt(2), epsilon(1e-4), sqrt(2), epsilon(oldeps)
|
|
; 0.000001 1.414214 0.000001 1.4142 0.0001
|
|
|
|
; /*
|
|
* NOTE: When displaying many digits after the decimal point
|
|
* be sure to set display(digits) (see 'help display') to
|
|
* large enough AND to set epsilon(eps) (see 'help epsilon')
|
|
* small enough (or if the function has a esp argument,
|
|
* give a eps argument that is small enough) to display
|
|
* the value correctly.
|
|
*/
|
|
; config("tilde", 1),;
|
|
|
|
; ## NOTE: display has too few digits and epsilon is not small enough
|
|
|
|
; display(12),;
|
|
; printf("%f\n", pi(1e-10));
|
|
3.1415926536
|
|
; epsilon(1e-10),;
|
|
; printf("%f\n", pi());
|
|
3.1415926536
|
|
|
|
; ## NOTE: display has too few digits yet epsilon is small enough
|
|
|
|
; display(12),;
|
|
; printf("%f\n", pi(1e-72));
|
|
~3.141592653590
|
|
; epsilon(1e-72),;
|
|
; printf("%f\n", pi());
|
|
~3.141592653590
|
|
|
|
; ## NOTE: display has enough digits but epsilon is not small enough
|
|
|
|
; display(72),;
|
|
; printf("%f\n", pi(1e-10));
|
|
3.1415926536
|
|
; epsilon(1e-10),;
|
|
; printf("%f\n", pi());
|
|
3.1415926536
|
|
|
|
; ## NOTE: display has enough digits and epsilon is small enough
|
|
|
|
; display(72),;
|
|
; printf("%f\n", pi(1e-72));
|
|
3.141592653589793238462643383279502884197169399375105820974944592307816406
|
|
; epsilon(1e-72),;
|
|
; printf("%f\n", pi());
|
|
3.141592653589793238462643383279502884197169399375105820974944592307816406
|
|
|
|
LIMITS
|
|
0 < eps < 1
|
|
|
|
LINK LIBRARY
|
|
void setepsilon(NUMBER *eps)
|
|
NUMBER *_epsilon_
|
|
|
|
SEE ALSO
|
|
config, display, fprintf, printf, strprintf
|
|
|
|
## Copyright (C) 1999,2018,2021,2023 Landon Curt Noll
|
|
##
|
|
## Calc is open software; you can redistribute it and/or modify it under
|
|
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
## as published by the Free Software Foundation.
|
|
##
|
|
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
## Public License for more details.
|
|
##
|
|
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
##
|
|
## Under source code control: 1995/10/05 04:52:26
|
|
## File existed as early as: 1995
|
|
##
|
|
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
|
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|