mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Fix many spelling errors
This commit is contained in:
22
CHANGES
22
CHANGES
@@ -16,7 +16,7 @@ The following are the changes from calc version 2.12.8.0 to date:
|
||||
calc without any compiler errors or warnings,
|
||||
even with -Werror -Wextra -pedantic.
|
||||
|
||||
To print out information about the calc compliation
|
||||
To print out information about the calc compilation
|
||||
environment, we added the following make rule:
|
||||
|
||||
make calcinfo
|
||||
@@ -30,16 +30,18 @@ The following are the changes from calc version 2.12.8.0 to date:
|
||||
question Email address. Created a new calc contribution Email
|
||||
address. See the BUGS file for details.
|
||||
|
||||
Added "help questions" to print the QUESIONS help file.
|
||||
Added "help questions" to print the QUESTIONS help file.
|
||||
|
||||
If the environment variable $CALCHELP is defined and is non-empty,
|
||||
then calc help files will be in the direcgory by the $CALCHISTFILE
|
||||
then calc help files will be in the directory by the $CALCHISTFILE
|
||||
environment variable.
|
||||
|
||||
If the environment variable $CALCCUSTOMHELP is defined and is
|
||||
non-empty, then custom calc help files will be in the direcgory
|
||||
non-empty, then custom calc help files will be in the directory
|
||||
by the $CALCCUSTOMHELP environment variable.
|
||||
|
||||
Fixed a number of typos in text and in source code comments.
|
||||
|
||||
The calc-tester mailing list has been retired. See:
|
||||
|
||||
* How to submit a calc bug report:
|
||||
@@ -104,7 +106,7 @@ The following are the changes from calc version 2.12.7.1 to 2.12.7.5:
|
||||
Copied missing description lines from help/intro to README.md
|
||||
"What is calc?" section. <<GitHub guilhermgonzaga>>
|
||||
|
||||
GCC 7 added a warning on fall throughs in case statements. It's
|
||||
GCC 7 added a warning on fall through in case statements. It's
|
||||
enabled by -Wextra and treated as an error due to -Wall so it
|
||||
breaks compilation. See -Wimplicit-fallthrough in the GCC
|
||||
manual. The default value is 3, which means a comment matching
|
||||
@@ -187,10 +189,10 @@ The following are the changes from calc version 2.12.6.9 to 2.12.6.9:
|
||||
Added regression tests 3729 thru 3732 to test E_TAN3, E_COT3,
|
||||
E_SEC3 and E_CSC3 respectively.
|
||||
|
||||
Added experimential %g printf (and strprintf) format implementation
|
||||
Added experimental %g printf (and strprintf) format implementation
|
||||
based on pull request from github user 10110111.
|
||||
|
||||
Made exterimental changes to macOS builds to not require use of
|
||||
Made experimental changes to macOS builds to not require use of
|
||||
/usr/include. The INCDIR for macOS uses:
|
||||
|
||||
INCDIR= $(shell xcrun --show-sdk-path --sdk macosx)/usr/include
|
||||
@@ -244,7 +246,7 @@ The following are the changes from calc version 2.12.6.6 to 2.12.6.8:
|
||||
Fixed an error message buffer overflow thanks to a report by
|
||||
Frank Peters <nlp at northernlightsphoto dot biz>.
|
||||
|
||||
Replaced all use of the C funcion sprintf() with snprintf().
|
||||
Replaced all use of the C function sprintf() with snprintf().
|
||||
Replaced all use of the C funcion vsprintf() with vsnprintf().
|
||||
Replaced all DONT_HAVE_VSPRINTF with DONT_HAVE_VSNPRINTF.
|
||||
Replaced all Makefile var ${HAVE_VSPRINTF} with ${HAVE_VSNPRINTF}.
|
||||
@@ -380,7 +382,7 @@ The following are the changes from calc version 2.12.5.4 to 2.12.5.6:
|
||||
The improved gen_v1() function is capable of returning a value
|
||||
for all valid values of h and n. As a result, the trial tables
|
||||
used by gen_v1() have been changed to a short list of values
|
||||
to try, in order ot likelyhood of success, before doing an
|
||||
to try, in order ot likelihood of success, before doing an
|
||||
exhaustive search for a v1 value to return.
|
||||
|
||||
Removed lucas_tbl.cal calc resource file. This file was made
|
||||
@@ -684,7 +686,7 @@ The following are the changes from calc version 2.12.4.6 to version 2.12.4.10:
|
||||
Silenced annoying warning about unused variable 'intp'
|
||||
while compiling endian.c under some circumstances.
|
||||
|
||||
Fixed typo in redeclaration warnings. Thanks to
|
||||
Fixed typo in re-declaration warnings. Thanks to
|
||||
Christoph Zurnieden <czurnieden at gmx dot de> for this report.
|
||||
|
||||
Added a number of calc resource files by
|
||||
|
@@ -29,7 +29,7 @@ Installing calc from the bzip2-ed tarball in 4 easy steps:
|
||||
|
||||
The top level Makefile and the custom/Makefile require a GNU
|
||||
Make (such as gmake) or an equivalently advanced make. On many
|
||||
targets, the default make is sufficent. On FreeBSD for example,
|
||||
targets, the default make is sufficient. On FreeBSD for example,
|
||||
one must use gmake instead of make.
|
||||
|
||||
Some report that under macOS, one has to declare the target
|
||||
@@ -120,7 +120,7 @@ Installing calc from the bzip2-ed tarball in 4 easy steps:
|
||||
found below, comment out the Linux set and comment in that
|
||||
set or edit the gcc set or the common cc set as needed.
|
||||
|
||||
You may want to change these Makrfile variables from their defaults:
|
||||
You may want to change these Makefile variables from their defaults:
|
||||
|
||||
RANLIB
|
||||
|
||||
@@ -152,7 +152,7 @@ Installing calc from the bzip2-ed tarball in 4 easy steps:
|
||||
|
||||
The top level Makefile and the custom/Makefile require a GNU
|
||||
Make (such as gmake) or an equivalently advanced make. On many
|
||||
targets, the default make is sufficent. On FreeBSD for example,
|
||||
targets, the default make is sufficient. On FreeBSD for example,
|
||||
one must use gmake instead of make.
|
||||
|
||||
If your target system does not have GNU Make (or equivalent), then
|
||||
|
18
Makefile
18
Makefile
@@ -25,7 +25,7 @@
|
||||
#
|
||||
# This makefile contains only those critical rules (such as all, clean, etc.)
|
||||
# and the common rules needed in development (such as chk, check, etc.).
|
||||
# This makefiile has a few special rules that are used to set the version
|
||||
# This makefile has a few special rules that are used to set the version
|
||||
# string in the shipped makefiles (such as Makefile.ship).
|
||||
|
||||
# Copyright (C) 1999-2008,2014 Landon Curt Noll
|
||||
@@ -53,7 +53,7 @@
|
||||
# calculator by David I. Bell with help/mods from others
|
||||
# Makefile by Landon Curt Noll
|
||||
|
||||
# Try uname -s if the target was not alreadhy set on the make command line
|
||||
# Try uname -s if the target was not already set on the make command line
|
||||
#
|
||||
ifeq ($(target),)
|
||||
target=$(shell uname -s 2>/dev/null)
|
||||
@@ -110,7 +110,7 @@ TOP_MAKE_FILE= Makefile
|
||||
EXT=
|
||||
#EXT=.exe
|
||||
|
||||
# This value is configured for chongo@theta.mellis.com.
|
||||
# This value is configured for chongo for his laptop
|
||||
#
|
||||
RPM_TOP= ${HOME}/rpm/calc
|
||||
|
||||
@@ -170,7 +170,7 @@ V=@:
|
||||
#
|
||||
XARG=
|
||||
|
||||
# We pass these make varaibles to the end of each make command line
|
||||
# We pass these make variables to the end of each make command line
|
||||
# that invokes the ${MAKE_FILE}.
|
||||
#
|
||||
XVAR= \
|
||||
@@ -574,7 +574,7 @@ custom/.all:
|
||||
|
||||
###
|
||||
#
|
||||
# building calc-static and static lib*.a libraires
|
||||
# building calc-static and static lib*.a libraries
|
||||
#
|
||||
###
|
||||
|
||||
@@ -603,7 +603,7 @@ libcustcalc.a:
|
||||
# Home grown make dependency rules. Your system make not support
|
||||
# or have the needed tools. You can ignore this section.
|
||||
#
|
||||
# We will form a skelaton tree of *.c files containing only #include "foo.h"
|
||||
# We will form a skeleton tree of *.c files containing only #include "foo.h"
|
||||
# lines and .h files containing the same lines surrounded by multiple include
|
||||
# prevention lines. This allows us to build a static depend list that will
|
||||
# satisfy all possible cpp symbol definition combinations.
|
||||
@@ -712,7 +712,7 @@ chk:
|
||||
# debug
|
||||
#
|
||||
# make calcinfo:
|
||||
# * print information about the host ane compile environment
|
||||
# * print information about the host and compile environment
|
||||
#
|
||||
# make env:
|
||||
# * print major Makefile variables
|
||||
@@ -836,7 +836,7 @@ inst_files:
|
||||
${Q} ${MAKE} ${XARG} -f ${MAKE_FILE} $@ ${XVAR}
|
||||
${V} echo '=-=-=-=-= private Makefile $@ rule end =-=-=-=-='
|
||||
|
||||
# The olduninstall rule will remove calc files from the older, histroic
|
||||
# The olduninstall rule will remove calc files from the older, historic
|
||||
# locations under the /usr/local directory. If you are using the
|
||||
# new default values for ${BINDIR}, ${CALC_SHAREDIR}, ${INCDIR} and ${LIBDIR}
|
||||
# then you can use this rule to clean out the older calc stuff under
|
||||
@@ -894,7 +894,7 @@ strip:
|
||||
${Q} ${MAKE} ${XARG} -f ${MAKE_FILE} $@ ${XVAR}
|
||||
${V} echo '=-=-=-=-= private Makefile $@ rule end =-=-=-=-='
|
||||
|
||||
# calc-symlink - setup symlinks from stardard locations into the ${T} tree
|
||||
# calc-symlink - setup symlinks from standard locations into the ${T} tree
|
||||
#
|
||||
calc-symlink:
|
||||
${V} echo '=-=-=-=-= private Makefile $@ rule start =-=-=-=-='
|
||||
|
@@ -1123,7 +1123,7 @@ EXTRA_LDFLAGS=
|
||||
# Architecture compile flags
|
||||
#
|
||||
# The ARCH_CFLAGS are ${CC} when compiling C files. They follow
|
||||
# CCMISC and preceed EXTRA_CFLAGS.
|
||||
# CCMISC and precede EXTRA_CFLAGS.
|
||||
#
|
||||
ARCH_CFLAGS= -march=native
|
||||
#ARCH_CFLAGS=
|
||||
@@ -2088,7 +2088,7 @@ LICENSE= COPYING COPYING-LGPL
|
||||
#
|
||||
DISTLIST= ${C_SRC} ${H_SRC} ${MAKE_FILE} BUGS CHANGES LIBRARY README.FIRST \
|
||||
README.WINDOWS calc.man HOWTO.INSTALL ${UTIL_MISC_SRC} ${LICENSE} \
|
||||
sample.README calc.spec.in rpm.mk README.md QUESTION CONTRUB
|
||||
sample.README calc.spec.in rpm.mk README.md QUESTION CONTRIB-CODE
|
||||
|
||||
# These files are used to make (but not build) a calc .a link library
|
||||
#
|
||||
@@ -2199,7 +2199,7 @@ check_include:
|
||||
echo "Without critical include files, we cannot compile." 1>&2; \
|
||||
echo "Perhaps your system isn't setup to compile C source?" 1>&2; \
|
||||
echo 1>&2; \
|
||||
echo "For example, Apple macOS / Darwin requres that XCode" 1>&2; \
|
||||
echo "For example, Apple macOS / Darwin requires that XCode" 1>&2; \
|
||||
echo "must be installed." 1>&2; \
|
||||
echo 1>&2; \
|
||||
echo "Also macOS users might later to run this command:" 1>&2; \
|
||||
@@ -4039,7 +4039,7 @@ chk: ./cal/regress.cal
|
||||
# debug
|
||||
#
|
||||
# make calcinfo:
|
||||
# * print information about the host ane compile environment
|
||||
# * print information about the host and compile environment
|
||||
#
|
||||
# make env:
|
||||
# * print major Makefile variables
|
||||
|
@@ -260,4 +260,4 @@ help unexpected
|
||||
```
|
||||
|
||||
It contains information about differences between C and calc
|
||||
that may surprize C programmers.
|
||||
that may surprise C programmers.
|
||||
|
2
blkcpy.c
2
blkcpy.c
@@ -1040,7 +1040,7 @@ copyblk2num(BLOCK *sblk, long ssi, long num, NUMBER *dnum, long dsi,
|
||||
NUMBER *ret; /* cloned and modified numerator */
|
||||
#if CALC_BYTE_ORDER == BIG_ENDIAN
|
||||
HALF *swapped; /* byte swapped input data */
|
||||
unsigned long halflen; /* length of the input ounded up to HALFs */
|
||||
unsigned long halflen; /* length of the input rounded up to HALFs */
|
||||
HALF *h; /* copy byteswap pointer */
|
||||
unsigned long i;
|
||||
#endif
|
||||
|
2
block.c
2
block.c
@@ -291,7 +291,7 @@ blkrealloc(BLOCK *blk, int newlen, int newchunk)
|
||||
* Set the data length
|
||||
*
|
||||
* We also know that the new block is not empty since we have
|
||||
* already dealth with that case above.
|
||||
* already dealt with that case above.
|
||||
*
|
||||
* After this section of code, limit and datalen will be
|
||||
* correct in terms of the new type.
|
||||
|
8
block.h
8
block.h
@@ -55,7 +55,7 @@
|
||||
* blkchunk defaults to BLK_CHUNKSIZE
|
||||
*
|
||||
* blkfree(x)
|
||||
* Reduce storage down to 0 octetes.
|
||||
* Reduce storage down to 0 octets.
|
||||
*
|
||||
* size(x)
|
||||
* The length of data stored in the block.
|
||||
@@ -88,7 +88,7 @@
|
||||
* blkmove(dest, src, length [, dest_offset [, src_offset]])
|
||||
* 0 <= length <= blksize(x)
|
||||
* offset's are restricted in value by block type
|
||||
* overlapping moves are handeled correctly
|
||||
* overlapping moves are handled correctly
|
||||
*
|
||||
* blkccpy(dest, src, stopval, length [, dest_offset [, src_offset]])
|
||||
* 0 <= length <= blksize(x)
|
||||
@@ -104,7 +104,7 @@
|
||||
* b = a*k for some integer k >= 1
|
||||
*
|
||||
* scatter(src, dest1, dest2 [, dest3 ] ...)
|
||||
* copy sucessive octets from src into dest1, dest2, ...
|
||||
* copy successive octets from src into dest1, dest2, ...
|
||||
* restarting with dest1 after end of list
|
||||
* stops at end of src
|
||||
*
|
||||
@@ -184,7 +184,7 @@ EXTERN int blk_debug; /* 0 => debug off */
|
||||
/* length of data stored in a block */
|
||||
#define blklen(blk) ((blk)->datalen)
|
||||
|
||||
/* block footpint in memory */
|
||||
/* block footprint in memory */
|
||||
#define blksizeof(blk) ((blk)->maxsize)
|
||||
|
||||
/* block allocation chunk size */
|
||||
|
18
byteswap.c
18
byteswap.c
@@ -77,7 +77,7 @@ swap_b8_in_HALFs(HALF *dest, HALF *src, LEN len)
|
||||
* NULL to allocate the storage
|
||||
* src - pointer to a ZVALUE to swap
|
||||
* all - TRUE => swap every element, FALSE => swap only the
|
||||
* multiprecision storage
|
||||
* multi-precision storage
|
||||
*
|
||||
* returns:
|
||||
* pointer to where the swapped src has been put
|
||||
@@ -145,7 +145,7 @@ swap_b8_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all)
|
||||
* NULL to allocate the storage
|
||||
* src - pointer to a NUMBER to swap
|
||||
* all - TRUE => swap every element, FALSE => swap only the
|
||||
* multiprecision storage
|
||||
* multi-precision storage
|
||||
*
|
||||
* returns:
|
||||
* pointer to where the swapped src has been put
|
||||
@@ -209,7 +209,7 @@ swap_b8_in_NUMBER(NUMBER *dest, NUMBER *src, BOOL all)
|
||||
* NULL to allocate the storage
|
||||
* src - pointer to a COMPLEX to swap
|
||||
* all - TRUE => swap every element, FALSE => swap only the
|
||||
* multiprecision storage
|
||||
* multi-precision storage
|
||||
*
|
||||
* returns:
|
||||
* pointer to where the swapped src has been put
|
||||
@@ -313,7 +313,7 @@ swap_b16_in_HALFs(HALF *dest, HALF *src, LEN len)
|
||||
* NULL to allocate the storage
|
||||
* src - pointer to a ZVALUE to swap
|
||||
* all - TRUE => swap every element, FALSE => swap only the
|
||||
* multiprecision storage
|
||||
* multi-precision storage
|
||||
*
|
||||
* returns:
|
||||
* pointer to where the swapped src has been put
|
||||
@@ -380,7 +380,7 @@ swap_b16_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all)
|
||||
* NULL to allocate the storage
|
||||
* src - pointer to a NUMBER to swap
|
||||
* all - TRUE => swap every element, FALSE => swap only the
|
||||
* multiprecision storage
|
||||
* multi-precision storage
|
||||
*
|
||||
* returns:
|
||||
* pointer to where the swapped src has been put
|
||||
@@ -444,7 +444,7 @@ swap_b16_in_NUMBER(NUMBER *dest, NUMBER *src, BOOL all)
|
||||
* NULL to allocate the storage
|
||||
* src - pointer to a COMPLEX to swap
|
||||
* all - TRUE => swap every element, FALSE => swap only the
|
||||
* multiprecision storage
|
||||
* multi-precision storage
|
||||
*
|
||||
* returns:
|
||||
* pointer to where the swapped src has been put
|
||||
@@ -508,7 +508,7 @@ swap_b16_in_COMPLEX(COMPLEX *dest, COMPLEX *src, BOOL all)
|
||||
* NULL to allocate the storage
|
||||
* src - pointer to a ZVALUE to swap
|
||||
* all - TRUE => swap every element, FALSE => swap only the
|
||||
* multiprecision storage
|
||||
* multi-precision storage
|
||||
*
|
||||
* returns:
|
||||
* pointer to where the swapped src has been put
|
||||
@@ -576,7 +576,7 @@ swap_HALF_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all)
|
||||
* NULL to allocate the storage
|
||||
* src - pointer to a NUMBER to swap
|
||||
* all - TRUE => swap every element, FALSE => swap only the
|
||||
* multiprecision storage
|
||||
* multi-precision storage
|
||||
*
|
||||
* returns:
|
||||
* pointer to where the swapped src has been put
|
||||
@@ -640,7 +640,7 @@ swap_HALF_in_NUMBER(NUMBER *dest, NUMBER *src, BOOL all)
|
||||
* NULL to allocate the storage
|
||||
* src - pointer to a COMPLEX to swap
|
||||
* all - TRUE => swap every element, FALSE => swap only the
|
||||
* multiprecision storage
|
||||
* multi-precision storage
|
||||
*
|
||||
* returns:
|
||||
* pointer to where the swapped src has been put
|
||||
|
@@ -181,14 +181,14 @@ FMT= fmt
|
||||
|
||||
# The calc files to install
|
||||
#
|
||||
# This list is prodiced by the detaillist rule when no WARNINGS are detected.
|
||||
# This list is produced by the detaillist rule when no WARNINGS are detected.
|
||||
#
|
||||
# Please use:
|
||||
#
|
||||
# make calc_files_list
|
||||
#
|
||||
# to keep this list in nice sorted order and to check that these
|
||||
# deailed help files are under RCS control.
|
||||
# detailed help files are under RCS control.
|
||||
#
|
||||
CALC_FILES= README alg_config.cal beer.cal bernoulli.cal \
|
||||
bernpoly.cal bigprime.cal bindings brentsolve.cal chi.cal chrem.cal \
|
||||
@@ -236,7 +236,7 @@ all: ${CALC_FILES} ${MAKE_FILE} .all
|
||||
# sub-directory called calc/cal.
|
||||
#
|
||||
# NOTE: Due to bogus shells found on one common system we must have
|
||||
# an non-emoty else clause for every if condition. *sigh*
|
||||
# an non-empty else clause for every if condition. *sigh*
|
||||
#
|
||||
##
|
||||
|
||||
@@ -391,7 +391,7 @@ uninstall:
|
||||
if [ -f "${T}${CALC_SHAREDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CALC_SHAREDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CALC_SHAREDIR}/$$i"; \
|
||||
echo "un-installed ${T}${CALC_SHAREDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
|
34
cal/README
34
cal/README
@@ -213,12 +213,12 @@ brentsolve.cal
|
||||
|
||||
brentsolve(low, high,eps)
|
||||
|
||||
A root-finder implementwed with the Brent-Dekker trick.
|
||||
A root-finder implemented with the Brent-Dekker trick.
|
||||
|
||||
brentsolve2(low, high,which,eps)
|
||||
|
||||
The second function, brentsolve2(low, high,which,eps) has some lines
|
||||
added to make it easier to hardcode the name of the helper function
|
||||
added to make it easier to hard-code the name of the helper function
|
||||
different from the obligatory "f".
|
||||
|
||||
See:
|
||||
@@ -392,7 +392,7 @@ factorial2.cal
|
||||
|
||||
bigcatalan(n)
|
||||
|
||||
Calculates the n-th Catalan number for n large. It is usefull
|
||||
Calculates the n-th Catalan number for n large. It is useful
|
||||
above n~50,000 but defaults to the builtin function for smaller
|
||||
values.Meant as a complete replacement for catalan(n) with only a
|
||||
very small overhead. See:
|
||||
@@ -433,9 +433,9 @@ factorial2.cal
|
||||
k = 0
|
||||
|
||||
The other function stirling2caching(n,m) does it by way of the
|
||||
reccurence relation and keeps all earlier results. This function
|
||||
re-occurrence relation and keeps all earlier results. This function
|
||||
is much slower for computing a single value than stirling2(n,m) but
|
||||
is very usefull if many Stirling numbers are needed, for example in
|
||||
is very useful if many Stirling numbers are needed, for example in
|
||||
a series. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Stirling_numbers_of_the_second_kind
|
||||
@@ -546,7 +546,7 @@ infinities.cal
|
||||
pinf()
|
||||
|
||||
The symbolic handling of infinities. Needed for intnum.cal but might be
|
||||
usefull elsewhere, too.
|
||||
useful elsewhere, too.
|
||||
|
||||
|
||||
intfile.cal
|
||||
@@ -595,13 +595,13 @@ intnum.cal
|
||||
This file offers some methods for numerical integration. Implemented are
|
||||
the Gauss-Legendre and the tanh-sinh quadrature.
|
||||
|
||||
All functions are usefull to some extend but the main function for
|
||||
All functions are useful to some extend but the main function for
|
||||
quadrature is quad(), which is not much more than an abstraction layer.
|
||||
|
||||
The main workers are quadgl() for Gauss-legendre and quadts() for the
|
||||
The main workers are quadgl() for Gauss-Legendre and quadts() for the
|
||||
tanh-sinh quadrature. The limits of the integral can be anything in the
|
||||
complex plane and the extended real line. The latter means that infinite
|
||||
limits are supported by way of the smbolic infinities implemented in the
|
||||
limits are supported by way of the symbolic infinities implemented in the
|
||||
file infinities.cal (automatically linked in by intnum.cal).
|
||||
|
||||
Integration in parts and contour is supported by the "points" argument
|
||||
@@ -661,7 +661,7 @@ intnum.cal
|
||||
|
||||
The quad*core functions do not offer anything fancy but the third parameter
|
||||
controls the so called "order" which is just the number of nodes computed.
|
||||
This can be quite usefull in some circumstances.
|
||||
This can be quite useful in some circumstances.
|
||||
|
||||
; quadgldeletenodes()
|
||||
; define f(x){ return exp(x);}
|
||||
@@ -723,7 +723,7 @@ lambertw.cal
|
||||
ProductLog[branch,z] with the tested values.
|
||||
|
||||
The series is only valid for the branches 0,-1, real z, converges
|
||||
for values of z _very_ near the branchpoint -exp(-1) only, and must
|
||||
for values of z _very_ near the branch-point -exp(-1) only, and must
|
||||
be given the branches explicitly. See the code in lambertw.cal
|
||||
for further information.
|
||||
|
||||
@@ -746,7 +746,7 @@ lnseries.cal
|
||||
does so by computing the prime factorization of all of the number
|
||||
sequence 1,2,3...n, calculates the natural logarithms of the primes
|
||||
in 1,2,3...n and uses the above factorization to build the natural
|
||||
logarithms of the rest of the sequence by sadding the logarithms of
|
||||
logarithms of the rest of the sequence by adding the logarithms of
|
||||
the primes in the factorization. This is faster for high precision
|
||||
of the logarithms and/or long sequences.
|
||||
|
||||
@@ -806,7 +806,7 @@ mfactor.cal
|
||||
at 2*start_k*n+1. Skips values that are multiples of primes <= p_elim.
|
||||
By default, start_k == 1, rept_loop = 10000 and p_elim = 17.
|
||||
|
||||
The p_elim == 17 overhead takes ~3 minutes on an 200 Mhz r4k CPU and
|
||||
The p_elim == 17 overhead takes ~3 minutes on an 200 MHz r4k CPU and
|
||||
requires about ~13 Megs of memory. The p_elim == 13 overhead
|
||||
takes about 3 seconds and requires ~1.5 Megs of memory.
|
||||
|
||||
@@ -1317,7 +1317,7 @@ specialfunctions.cal
|
||||
http://en.wikipedia.org/wiki/Polygamma
|
||||
http://dlmf.nist.gov/5
|
||||
|
||||
for information on the n-th derivative ofthe Euler gamma function. This
|
||||
for information on the n-th derivative of the Euler gamma function. This
|
||||
function depends on the script zeta2.cal.
|
||||
|
||||
|
||||
@@ -1334,7 +1334,7 @@ specialfunctions.cal
|
||||
|
||||
zeta(s)
|
||||
|
||||
Calculates the value of the Rieman Zeta function at s. See:
|
||||
Calculates the value of the Riemann Zeta function at s. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Riemann_zeta_function
|
||||
http://dlmf.nist.gov/25.2
|
||||
@@ -1353,7 +1353,7 @@ statistics.cal
|
||||
invbetainc(x,a,b)
|
||||
|
||||
Computes the inverse of the regularized beta function. Does so the
|
||||
brute-force way wich makes it a bit slower.
|
||||
brute-force way which makes it a bit slower.
|
||||
|
||||
betapdf(x,a,b)
|
||||
betacdf(x,a,b)
|
||||
@@ -1433,7 +1433,7 @@ sumtimes.cal
|
||||
Give the user CPU time for various ways of evaluating sums, sums of
|
||||
squares, etc, for large lists and matrices. N is the size of
|
||||
the list or matrix to use. The doalltimes() function will run
|
||||
all fo the sumtimes tests. For example:
|
||||
all of the sumtimes tests. For example:
|
||||
|
||||
doalltimes(1e6);
|
||||
|
||||
|
@@ -33,7 +33,7 @@ static test_time; /* try for this many seconds in loop test */
|
||||
* given:
|
||||
* ratio the ratio of time between two algorithms
|
||||
*
|
||||
* retuns:
|
||||
* returns:
|
||||
* 1 When ratio is near 1.0
|
||||
* 0 otherwise
|
||||
*
|
||||
@@ -354,7 +354,7 @@ define best_mul2()
|
||||
local high; /* high loop value tested */
|
||||
local mid; /* between low and high */
|
||||
local best_val; /* value found with ratio closest to unity */
|
||||
local best_ratio; /* cloest ratio found to unity */
|
||||
local best_ratio; /* closest ratio found to unity */
|
||||
local expand; /* how fast to expand the length */
|
||||
|
||||
/*
|
||||
@@ -363,7 +363,7 @@ define best_mul2()
|
||||
printf("WARNING: This tool may not be computing the correct best value\n");
|
||||
test_time = 5.0;
|
||||
printf("The best_mul2() function will take a LONG time to run!\n");
|
||||
printf("It is important that best_mul2() run on an othwewise idle host!\n");
|
||||
printf("It is important that best_mul2() run on an otherwise idle host!\n");
|
||||
if (config("user_debug") <= 0) {
|
||||
printf("To monitor progress, set user_debug to 2: "
|
||||
"config(\"user_debug\", 2)\n");
|
||||
@@ -392,7 +392,7 @@ define best_mul2()
|
||||
*/
|
||||
do {
|
||||
/*
|
||||
* determine the paramters of the next ratio test
|
||||
* determine the parameters of the next ratio test
|
||||
*
|
||||
* We will multiplicatively expand our test level until
|
||||
* the ratio drops below 1.0.
|
||||
@@ -419,7 +419,7 @@ define best_mul2()
|
||||
best_val = high;
|
||||
best_ratio = ratio;
|
||||
if (config("user_debug") > 1) {
|
||||
printf(" len %d has a new cloest ratio to unity: %.6f\n",
|
||||
printf(" len %d has a new closest ratio to unity: %.6f\n",
|
||||
best_val, best_ratio);
|
||||
}
|
||||
}
|
||||
@@ -442,7 +442,7 @@ define best_mul2()
|
||||
high /= 2;
|
||||
low = high / 2;
|
||||
if (config("user_debug") > 0) {
|
||||
printf("retesting multiply alg1/alg2 ratio for len = %d\n",
|
||||
printf("re-testing multiply alg1/alg2 ratio for len = %d\n",
|
||||
high);
|
||||
}
|
||||
ratio = mul_ratio(high);
|
||||
@@ -450,7 +450,8 @@ define best_mul2()
|
||||
best_val = high;
|
||||
best_ratio = ratio;
|
||||
if (config("user_debug") > 1) {
|
||||
printf(" len %d has a new cloest ratio to unity: %.6f\n",
|
||||
printf(" len %d has a new closest ratio "
|
||||
"to unity: %.6f\n",
|
||||
best_val, best_ratio);
|
||||
}
|
||||
}
|
||||
@@ -483,7 +484,7 @@ define best_mul2()
|
||||
best_val = mid;
|
||||
best_ratio = ratio;
|
||||
if (config("user_debug") > 1) {
|
||||
printf(" len %d has a new cloest ratio to unity: %.6f\n",
|
||||
printf(" len %d has a new closest ratio to unity: %.6f\n",
|
||||
best_val, best_ratio);
|
||||
}
|
||||
}
|
||||
@@ -535,7 +536,7 @@ define best_mul2()
|
||||
printf("config(\"mul2\", %d),;\n", best_val);
|
||||
printf("WARNING: It is believed that the output "
|
||||
"of this resource file is bogus!\n");
|
||||
printf("WARNING: You may NOT wish to follow the above suggeston.\n");
|
||||
printf("WARNING: You may NOT wish to follow the above suggestion.\n");
|
||||
}
|
||||
return mid;
|
||||
}
|
||||
@@ -835,7 +836,7 @@ define best_sq2()
|
||||
local high; /* high loop value tested */
|
||||
local mid; /* between low and high */
|
||||
local best_val; /* value found with ratio closest to unity */
|
||||
local best_ratio; /* cloest ratio found to unity */
|
||||
local best_ratio; /* closest ratio found to unity */
|
||||
local expand; /* how fast to expand the length */
|
||||
|
||||
/*
|
||||
@@ -844,7 +845,7 @@ define best_sq2()
|
||||
printf("WARNING: This tool may not be computing the correct best value\n");
|
||||
test_time = 5.0;
|
||||
printf("The best_sq2() function will take a LONG time to run!\n");
|
||||
printf("It is important that best_sq2() run on an othwewise idle host!\n");
|
||||
printf("It is important that best_sq2() run on an otherwise idle host!\n");
|
||||
if (config("user_debug") <= 0) {
|
||||
printf("To monitor progress, set user_debug to 2: "
|
||||
"config(\"user_debug\", 2)\n");
|
||||
@@ -873,7 +874,7 @@ define best_sq2()
|
||||
*/
|
||||
do {
|
||||
/*
|
||||
* determine the paramters of the next ratio test
|
||||
* determine the parameters of the next ratio test
|
||||
*
|
||||
* We will multiplicatively expand our test level until
|
||||
* the ratio drops below 1.0.
|
||||
@@ -900,7 +901,7 @@ define best_sq2()
|
||||
best_val = high;
|
||||
best_ratio = ratio;
|
||||
if (config("user_debug") > 1) {
|
||||
printf(" len %d has a new cloest ratio to unity: %.6f\n",
|
||||
printf(" len %d has a new closest ratio to unity: %.6f\n",
|
||||
best_val, best_ratio);
|
||||
}
|
||||
}
|
||||
@@ -923,7 +924,7 @@ define best_sq2()
|
||||
high /= 2;
|
||||
low = high / 2;
|
||||
if (config("user_debug") > 0) {
|
||||
printf("retesting multiply alg1/alg2 ratio for len = %d\n",
|
||||
printf("re-testing multiply alg1/alg2 ratio for len = %d\n",
|
||||
high);
|
||||
}
|
||||
ratio = mul_ratio(high);
|
||||
@@ -931,7 +932,8 @@ define best_sq2()
|
||||
best_val = high;
|
||||
best_ratio = ratio;
|
||||
if (config("user_debug") > 1) {
|
||||
printf(" len %d has a new cloest ratio to unity: %.6f\n",
|
||||
printf(" len %d has a new closest ratio "
|
||||
"to unity: %.6f\n",
|
||||
best_val, best_ratio);
|
||||
}
|
||||
}
|
||||
@@ -964,7 +966,7 @@ define best_sq2()
|
||||
best_val = mid;
|
||||
best_ratio = ratio;
|
||||
if (config("user_debug") > 1) {
|
||||
printf(" len %d has a new cloest ratio to unity: %.6f\n",
|
||||
printf(" len %d has a new closest ratio to unity: %.6f\n",
|
||||
best_val, best_ratio);
|
||||
}
|
||||
}
|
||||
@@ -1017,7 +1019,7 @@ define best_sq2()
|
||||
printf("config(\"sq2\", %d),;\n", best_val);
|
||||
printf("WARNING: It is believed that the output "
|
||||
"of this resource file is bogus!\n");
|
||||
printf("WARNING: You may NOT wish to follow the above suggeston.\n");
|
||||
printf("WARNING: You may NOT wish to follow the above suggestion.\n");
|
||||
}
|
||||
return mid;
|
||||
}
|
||||
@@ -1337,7 +1339,7 @@ define best_pow2()
|
||||
local high; /* high loop value tested */
|
||||
local mid; /* between low and high */
|
||||
local best_val; /* value found with ratio closest to unity */
|
||||
local best_ratio; /* cloest ratio found to unity */
|
||||
local best_ratio; /* closest ratio found to unity */
|
||||
local expand; /* how fast to expand the length */
|
||||
local looped; /* 1 ==> we have expanded lengths before */
|
||||
|
||||
@@ -1347,7 +1349,7 @@ define best_pow2()
|
||||
printf("WARNING: This tool may not be computing the correct best value\n");
|
||||
test_time = 60.0;
|
||||
printf("The best_pow2() function will take a LONG time to run!\n");
|
||||
printf("It is important that best_pow2() run on an othwewise idle host!\n");
|
||||
printf("It is important that best_pow2() run on an otherwise idle host!\n");
|
||||
if (config("user_debug") <= 0) {
|
||||
printf("To monitor progress, set user_debug to 2: "
|
||||
"config(\"user_debug\", 2)\n");
|
||||
@@ -1358,7 +1360,7 @@ define best_pow2()
|
||||
* firewall - must have a >1.02 ratio for the initial length
|
||||
*
|
||||
* We select 1.02 because of the precision of the CPU timing. We
|
||||
* want to firt move into an area where the 1st algoritm clearly
|
||||
* want to first move into an area where the 1st algorithm clearly
|
||||
* dominates.
|
||||
*/
|
||||
low = 4;
|
||||
@@ -1375,7 +1377,7 @@ define best_pow2()
|
||||
best_val = high;
|
||||
best_ratio = ratio;
|
||||
if (config("user_debug") > 1) {
|
||||
printf(" len %d has a new cloest ratio to unity: %.6f\n",
|
||||
printf(" len %d has a new closest ratio to unity: %.6f\n",
|
||||
best_val, best_ratio);
|
||||
}
|
||||
}
|
||||
@@ -1397,7 +1399,7 @@ define best_pow2()
|
||||
looped = 0;
|
||||
do {
|
||||
/*
|
||||
* determine the paramters of the next ratio test
|
||||
* determine the parameters of the next ratio test
|
||||
*
|
||||
* We will multiplicatively expand our test level until
|
||||
* the ratio drops below 1.0.
|
||||
@@ -1435,7 +1437,7 @@ define best_pow2()
|
||||
best_val = high;
|
||||
best_ratio = ratio;
|
||||
if (config("user_debug") > 1) {
|
||||
printf(" len %d has a new cloest ratio to unity: %.6f\n",
|
||||
printf(" len %d has a new closest ratio to unity: %.6f\n",
|
||||
best_val, best_ratio);
|
||||
}
|
||||
}
|
||||
@@ -1463,7 +1465,7 @@ define best_pow2()
|
||||
best_val = mid;
|
||||
best_ratio = ratio;
|
||||
if (config("user_debug") > 1) {
|
||||
printf(" len %d has a new cloest ratio to unity: %.6f\n",
|
||||
printf(" len %d has a new closest ratio to unity: %.6f\n",
|
||||
best_val, best_ratio);
|
||||
}
|
||||
}
|
||||
@@ -1516,7 +1518,7 @@ define best_pow2()
|
||||
printf("config(\"pow2\", %d),;\n", best_val);
|
||||
printf("WARNING: It is believed that the output "
|
||||
"of this resource file is bogus!\n");
|
||||
printf("WARNING: You may NOT wish to follow the above suggeston.\n");
|
||||
printf("WARNING: You may NOT wish to follow the above suggestion.\n");
|
||||
}
|
||||
return mid;
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* bernoulli - clculate the Nth Bernoulli number B(n)
|
||||
* bernoulli - calculate the Nth Bernoulli number B(n)
|
||||
*
|
||||
* Copyright (C) 2000 David I. Bell and Landon Curt Noll
|
||||
*
|
||||
@@ -26,9 +26,9 @@
|
||||
/*
|
||||
* Calculate the Nth Bernoulli number B(n).
|
||||
*
|
||||
* NOTE: This is now a bulitin function.
|
||||
* NOTE: This is now a builtin function.
|
||||
*
|
||||
* The non-buildin code used the following symbolic formula to calculate B(n):
|
||||
* The non-builtin code used the following symbolic formula to calculate B(n):
|
||||
*
|
||||
* (b+1)^(n+1) - b^(n+1) = 0
|
||||
*
|
||||
@@ -42,7 +42,7 @@
|
||||
* B(3) = -(6*B(2) + 4*B(1) + 1) / 4
|
||||
*
|
||||
* The combinatorial factors in the expansion of the above formula are
|
||||
* calculated interatively, and we use the fact that B(2i+1) = 0 if i > 0.
|
||||
* calculated interactively, and we use the fact that B(2i+1) = 0 if i > 0.
|
||||
* Since all previous B(n)'s are needed to calculate a particular B(n), all
|
||||
* values obtained are saved in an array for ease in repeated calculations.
|
||||
*/
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* bernpoly - Bernoully polynomials B_n(z) for arbitrary n,z..
|
||||
* bernpoly - Bernoulli polynomials B_n(z) for arbitrary n,z..
|
||||
*
|
||||
* Copyright (C) 2013 Christoph Zurnieden
|
||||
*
|
||||
|
@@ -143,7 +143,7 @@ define brentsolve2(low, high,which,eps){
|
||||
|
||||
switch(param(0)){
|
||||
case 0:
|
||||
case 1: return newerror("brentsolve2: not enough argments");
|
||||
case 1: return newerror("brentsolve2: not enough arguments");
|
||||
case 2: eps = epsilon(epsilon()*1e-2);
|
||||
which = 0;break;
|
||||
case 3: eps = epsilon(epsilon()*1e-2);break;
|
||||
|
@@ -51,7 +51,7 @@ define Z(x, eps_term)
|
||||
|
||||
|
||||
/*
|
||||
* P(x[, eps]) asymtotic P(x) expansion for x>0 to an given epsilon error term
|
||||
* P(x[, eps]) asymptotic P(x) expansion for x>0 to an given epsilon error term
|
||||
*
|
||||
* NOTE: If eps is omitted, the stored epsilon value is used.
|
||||
*
|
||||
@@ -99,7 +99,7 @@ define P(x, eps_term)
|
||||
}
|
||||
|
||||
/*
|
||||
* aproximate sum(n=0; n < infinity){x^(2*n+1)/(1*3*5*...(2*n+1)}
|
||||
* approximate sum(n=0; n < infinity){x^(2*n+1)/(1*3*5*...(2*n+1)}
|
||||
*/
|
||||
x2 = x*x;
|
||||
x_term = x;
|
||||
@@ -130,7 +130,7 @@ define P(x, eps_term)
|
||||
*
|
||||
* The chi_prob() function does not work well with odd degrees of freedom.
|
||||
* It is reasonable with even degrees of freedom, although one must give
|
||||
* a sifficently small error term as the degress gets large (>100).
|
||||
* a sufficiently small error term as the degrees gets large (>100).
|
||||
*
|
||||
* NOTE: This function does not work well with odd degrees of freedom.
|
||||
* Can somebody help / find a bug / provide a better method of
|
||||
@@ -186,7 +186,7 @@ define chi_prob(chi_sq, v, eps_term)
|
||||
local r; /* index in finite sum */
|
||||
local r_lim; /* limit value for r */
|
||||
local s; /* sum */
|
||||
local d; /* demoninator (2*4*6*... or 1*3*5...) */
|
||||
local d; /* denominator (2*4*6*... or 1*3*5...) */
|
||||
local chi_term; /* chi_sq^r */
|
||||
local ret; /* return value */
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* chrem - chinese remainder theorem/problem solver
|
||||
* chrem - Chinese remainder theorem/problem solver
|
||||
*
|
||||
* Copyright (C) 1999 Ernest Bowen and Landon Curt Noll
|
||||
*
|
||||
@@ -26,7 +26,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* When possible, chrem finds solutions for x of a set of congruences
|
||||
* When possible, chrem finds solutions for x of a set of congruence
|
||||
* of the form:
|
||||
*
|
||||
* x = r1 (mod m1)
|
||||
@@ -35,7 +35,7 @@
|
||||
*
|
||||
* where the residues r1, r2, ... and the moduli m1, m2, ... are
|
||||
* given integers. The Chinese remainder theorem states that if
|
||||
* m1, m2, ... are relatively prime in pairs, the above congruences
|
||||
* m1, m2, ... are relatively prime in pairs, the above congruence
|
||||
* have a unique solution modulo m1 * m2 * ... If m1, m2, ...
|
||||
* are not relatively prime in pairs, it is possible that no solution
|
||||
* exists. If solutions exist, the general solution is expressible as:
|
||||
|
@@ -53,7 +53,7 @@ define dms_add(a, b)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* initalize value to 1st arg */
|
||||
/* initialize value to 1st arg */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is dms object, load it */
|
||||
ans.deg = a.deg;
|
||||
@@ -110,7 +110,7 @@ define dms_sub(a, b)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* initalize value to 1st arg */
|
||||
/* initialize value to 1st arg */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is dms object, load it */
|
||||
ans.deg = a.deg;
|
||||
@@ -352,11 +352,11 @@ define fixdms(a)
|
||||
quit "attempt to fix a non dms object";
|
||||
}
|
||||
|
||||
/* force minutes to be intergral */
|
||||
/* force minutes to be integral */
|
||||
a.min += frac(a.deg) * 60;
|
||||
a.deg = int(a.deg);
|
||||
|
||||
/* force degrees to be intergral */
|
||||
/* force degrees to be integral */
|
||||
a.sec += frac(a.min) * 60;
|
||||
a.min = int(a.min);
|
||||
|
||||
|
@@ -173,7 +173,7 @@ define dotest(dotest_file, dotest_code = 0, dotest_maxcond = -1)
|
||||
}
|
||||
|
||||
/*
|
||||
* preppare to return to the caller environment
|
||||
* prepare to return to the caller environment
|
||||
*
|
||||
* We increase the caller's error count by the number
|
||||
* of line tests that failed, not the number of internal
|
||||
|
@@ -281,10 +281,10 @@ define __CZ__multiply_factored_factorial(matrix,stop){
|
||||
}
|
||||
|
||||
/*
|
||||
Compute binomial coeficients n!/(k!(n-k)!)
|
||||
Compute binomial coefficients n!/(k!(n-k)!)
|
||||
|
||||
One of the rare cases where a formula once meant to ease manual computation
|
||||
is actually the (aymptotically) fastest way to do it (in July 2013) for
|
||||
is actually the (asymptotically) fastest way to do it (in July 2013) for
|
||||
the extreme case binomial(2N,N) but for a high price, the memory
|
||||
needed is pi(N)--theoretically.
|
||||
*/
|
||||
@@ -626,7 +626,7 @@ define subfactorialrecursive(n){
|
||||
return n * subfactorialrecursive(n-1) + (-1)^n;
|
||||
}
|
||||
|
||||
/* This is, quite amusingely, faster than the very same algorithm in
|
||||
/* This is, quite amusingly, faster than the very same algorithm in
|
||||
PARI/GP + GMP*/
|
||||
define subfactorialiterative(n){
|
||||
local k temp1 temp2 ret;
|
||||
|
@@ -53,7 +53,7 @@ define hms_add(a, b)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* initalize value to 1st arg */
|
||||
/* initialize value to 1st arg */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is hms object, load it */
|
||||
ans.hour = a.hour;
|
||||
@@ -110,7 +110,7 @@ define hms_sub(a, b)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* initalize value to 1st arg */
|
||||
/* initialize value to 1st arg */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is hms object, load it */
|
||||
ans.hour = a.hour;
|
||||
@@ -352,11 +352,11 @@ define fixhms(a)
|
||||
quit "attempt to fix a non hms object";
|
||||
}
|
||||
|
||||
/* force minutes to be intergral */
|
||||
/* force minutes to be integral */
|
||||
a.min += frac(a.hour) * 60;
|
||||
a.hour = int(a.hour);
|
||||
|
||||
/* force hours to be intergral */
|
||||
/* force hours to be integral */
|
||||
a.sec += frac(a.min) * 60;
|
||||
a.min = int(a.min);
|
||||
|
||||
|
@@ -27,20 +27,20 @@
|
||||
|
||||
/*
|
||||
* NOTE: Because leading HALF values are trimmed from integer, a file
|
||||
* that begins with lots of 0 bits (in the case of big endian)
|
||||
* or that ends with lots of 0 bits (in the case of little endian)
|
||||
* that begins with lots of 0 bits (in the case of big Endian)
|
||||
* or that ends with lots of 0 bits (in the case of little Endian)
|
||||
* will be changed when the subsequent integer is written back.
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* file2be - convert a file into an big endian integer
|
||||
* file2be - convert a file into an big Endian integer
|
||||
*
|
||||
* given:
|
||||
* filename filename to read
|
||||
*
|
||||
* returns:
|
||||
* integer read from its contents on big endian order
|
||||
* integer read from its contents on big Endian order
|
||||
*/
|
||||
define file2be(filename)
|
||||
{
|
||||
@@ -75,13 +75,13 @@ define file2be(filename)
|
||||
|
||||
|
||||
/*
|
||||
* file2le - convert a file into an little endian integer
|
||||
* file2le - convert a file into an little Endian integer
|
||||
*
|
||||
* given:
|
||||
* filename filename to read
|
||||
*
|
||||
* returns:
|
||||
* integer read from its contents on little endian order
|
||||
* integer read from its contents on little Endian order
|
||||
*/
|
||||
define file2le(filename)
|
||||
{
|
||||
@@ -118,7 +118,7 @@ define file2le(filename)
|
||||
|
||||
|
||||
/*
|
||||
* be2file - convert a big endian integer into a file
|
||||
* be2file - convert a big Endian integer into a file
|
||||
*
|
||||
* given:
|
||||
* v integer to write to the file
|
||||
@@ -168,7 +168,7 @@ define be2file(v, filename)
|
||||
|
||||
|
||||
/*
|
||||
* le2file - convert a little endian integer into a file
|
||||
* le2file - convert a little Endian integer into a file
|
||||
*
|
||||
* given:
|
||||
* v integer to write to the file
|
||||
|
@@ -295,7 +295,7 @@ define quadts(a, b, points)
|
||||
* as the number of equally spaced intervals on a straight line
|
||||
* connecting a and b. Computing the segments here is a bit
|
||||
* more complicated but not much, it should have been taught in
|
||||
* highschool.
|
||||
* high school.
|
||||
* Other contours by way of a list of points */
|
||||
slope = (im(b) - im(a)) / (re(b) - re(a));
|
||||
C = (im(a) + slope) * re(a);
|
||||
|
@@ -83,7 +83,7 @@ define __CZ__lambertw_m1(z,eps){
|
||||
or by using the function lambertw_series_print() after running
|
||||
lambertw_series(z,eps,branch,terms) at least once with the wanted number of
|
||||
terms and z = 1 (which might throw an error because the series will not
|
||||
converge in anybodies lifetime for something that far from the branchpoint).
|
||||
converge in anybodies lifetime for something that far from the branch point).
|
||||
|
||||
|
||||
*/
|
||||
@@ -105,7 +105,7 @@ define lambertw_series_print(){
|
||||
}
|
||||
|
||||
/*
|
||||
The series is fast but only if _very_ close to the branchpoint
|
||||
The series is fast but only if _very_ close to the branch point
|
||||
The exact branch must be given explicitly, e.g.:
|
||||
|
||||
; lambertw(-exp(-1)+.001)-lambertw_series(-exp(-1)+.001,epsilon()*1e-10,0)
|
||||
|
@@ -29,7 +29,7 @@
|
||||
*
|
||||
* given:
|
||||
* x0, y0 first known point on the line
|
||||
* x1, y1 second knonw point on the line
|
||||
* x1, y1 second known point on the line
|
||||
* x a given point to interpolate on
|
||||
*
|
||||
* returns:
|
||||
|
@@ -947,7 +947,7 @@ rodseth_xhn(x, h, n)
|
||||
*
|
||||
* Without Jacobi symbol value caching, it requires on average
|
||||
* 4.851377 Jacobi symbol evaluations. With Jacobi symbol value caching
|
||||
* cacheing, an averare of 4.348820 Jacobi symbol evaluations is needed.
|
||||
* cacheing, an average of 4.348820 Jacobi symbol evaluations is needed.
|
||||
*
|
||||
* Given this information, when odd h is a multiple of 3 we try, in order,
|
||||
* these odd values of X:
|
||||
@@ -961,7 +961,7 @@ rodseth_xhn(x, h, n)
|
||||
* jacobi(X-2, h*2^n-1) == 1
|
||||
* jacobi(X+2, h*2^n-1) == -1
|
||||
*
|
||||
* Less than 1 case out of 1000000 will not be satisifed by the above list.
|
||||
* Less than 1 case out of 1000000 will not be satisfied by the above list.
|
||||
* If no value in that list works, we start simple search starting with X = 167
|
||||
* and incrementing by 2 until a value of X is found.
|
||||
*
|
||||
@@ -1049,7 +1049,7 @@ next_x = 167; /* must be 2 more than the largest value in x_tbl[] */
|
||||
* else
|
||||
* v(1) = 4
|
||||
*
|
||||
* HOTE: The above "if then else" works only of h is not a multiple of 3.
|
||||
* NOTE: The above "if then else" works only of h is not a multiple of 3.
|
||||
*
|
||||
***
|
||||
*
|
||||
@@ -1234,10 +1234,10 @@ gen_v1(h, n)
|
||||
* jacobi(X-2, h*2^n-1) == 1 part 1
|
||||
* jacobi(X+2, h*2^n-1) == -1 part 2
|
||||
*
|
||||
* NOTE: If we wanted to be super optimial, we would cache
|
||||
* NOTE: If we wanted to be super optimal, we would cache
|
||||
* jacobi(X+2, h*2^n-1) that that when we increment X
|
||||
* to the next odd value, the now jacobi(X-2, h*2^n-1)
|
||||
* does not need to be re-evaluted.
|
||||
* does not need to be re-evaluated.
|
||||
*/
|
||||
testval = h*2^n-1;
|
||||
for (i=0; i < x_tbl_len; ++i) {
|
||||
@@ -1285,7 +1285,7 @@ gen_v1(h, n)
|
||||
/*
|
||||
* We are in that rare case (less than 1 in 1 000 000) where none of the
|
||||
* common X values satisfy Ref4 condition 1. We start a linear search
|
||||
* of odd vules at next_x from here on.
|
||||
* of odd values at next_x from here on.
|
||||
*/
|
||||
x = next_x;
|
||||
while (rodseth_xhn(x, h, n) != 1) {
|
||||
|
@@ -303,7 +303,7 @@ read -once "lucas.cal";
|
||||
* [quiet] if given and != 0, then do not print individual test results
|
||||
*
|
||||
* returns:
|
||||
* 1 all is ok
|
||||
* 1 all is OK
|
||||
* 0 something went wrong
|
||||
*/
|
||||
define
|
||||
|
@@ -79,7 +79,7 @@
|
||||
* hindx = 0;
|
||||
* } while (test_factor < some_limit);
|
||||
*
|
||||
* The test, mfactor(67, 1, 10000) took on an 200 Mhz r4k (user CPU seconds):
|
||||
* The test, mfactor(67, 1, 10000) took on an 200 MHz r4k (user CPU seconds):
|
||||
*
|
||||
* 210.83 (prior to use of hset[])
|
||||
* 78.35 (hset[] for p_elim = 7)
|
||||
@@ -99,7 +99,7 @@
|
||||
* 57.78 (hset[] for p_elim = 17)
|
||||
* p_elim == 19 rejected because of memory size
|
||||
*
|
||||
* The p_elim == 17 overhead takes ~3 minutes on an 200 Mhz r4k CPU and
|
||||
* The p_elim == 17 overhead takes ~3 minutes on an 200 MHz r4k CPU and
|
||||
* requires about ~13 Megs of memory. The p_elim == 13 overhead
|
||||
* takes about 3 seconds and requires ~1.5 Megs of memory.
|
||||
*
|
||||
@@ -256,7 +256,7 @@ define mfactor(n, start_k, rept_loop, p_elim)
|
||||
return q;
|
||||
} else {
|
||||
/* report this loop */
|
||||
printf("at 2*%d*%d+1, cpu: %f\n",
|
||||
printf("at 2*%d*%d+1, CPU: %f\n",
|
||||
(q-1)/(2*n), n, usertime());
|
||||
fflush(files(1));
|
||||
loop = 0;
|
||||
@@ -269,14 +269,14 @@ define mfactor(n, start_k, rept_loop, p_elim)
|
||||
*/
|
||||
if (rept_loop <= ++loop) {
|
||||
/* report this loop */
|
||||
printf("at 2*%d*%d+1, cpu: %f\n",
|
||||
printf("at 2*%d*%d+1, CPU: %f\n",
|
||||
(q-1)/(2*n), n, usertime());
|
||||
fflush(files(1));
|
||||
loop = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* skip if divisable by a prime <= 449
|
||||
* skip if divisible by a prime <= 449
|
||||
*
|
||||
* The value 281 was determined by timing loops
|
||||
* which found that 281 was at or near the
|
||||
@@ -285,7 +285,7 @@ define mfactor(n, start_k, rept_loop, p_elim)
|
||||
* The addition of the do { ... } while (factor(q, 449)>1);
|
||||
* loop reduced the factoring loop time (36504 k values with
|
||||
* the hset[] initialization time removed) from 25.69 sec to
|
||||
* 15.62 sec of CPU time on a 200Mhz r4k.
|
||||
* 15.62 sec of CPU time on a 200MHz r4k.
|
||||
*/
|
||||
do {
|
||||
/*
|
||||
|
@@ -76,7 +76,7 @@
|
||||
* A \ B = set difference, integers in A but not in B
|
||||
*
|
||||
* ~A = complement of A, integers not in A
|
||||
* #A = number ofintegers in A
|
||||
* #A = number of integers in A
|
||||
* !A = 1 or 0 according as A is empty or not empty
|
||||
* +A = sum of the members of A
|
||||
*
|
||||
@@ -100,7 +100,7 @@
|
||||
* A >= B = (B <= A)
|
||||
* A > B = (B < A)
|
||||
*
|
||||
* Expresssions may be formed from the above "arithmetic" operations in
|
||||
* Expressions may be formed from the above "arithmetic" operations in
|
||||
* the usual way, with parentheses for variations from the usual precedence
|
||||
* rules. For example
|
||||
*
|
||||
|
@@ -25,7 +25,7 @@
|
||||
|
||||
/*
|
||||
* Solve Pell's equation; Returns the solution X to: X^2 - D * Y^2 = 1.
|
||||
* Type the solution to pells equation for a particular D.
|
||||
* Type the solution to Pell's equation for a particular D.
|
||||
*/
|
||||
|
||||
|
||||
|
@@ -35,7 +35,7 @@
|
||||
* variable has only one name. For some purposes, a name like
|
||||
* "sin(t)" or "(a + b)" or "\lambda" might be useful;
|
||||
* names like "*" or "-27" are legal but might give expressions
|
||||
* that are difficult to intepret.
|
||||
* that are difficult to interpret.
|
||||
*
|
||||
* Polynomial expressions may be constructed from numbers and the
|
||||
* independent variable and other polynomials by the algebraic
|
||||
@@ -43,7 +43,7 @@
|
||||
* The operations // and % are defined to have the quotient and
|
||||
* remainder meanings as usually defined for polynomials.
|
||||
*
|
||||
* When polynomials are assigned to idenfifiers, it is convenient to
|
||||
* When polynomials are assigned to identifiers, it is convenient to
|
||||
* think of the polynomials as values. For example, p = (x - 1)^2
|
||||
* assigns to p a polynomial value in the same way as q = (7 - 1)^2
|
||||
* would assign to q a number value. As with number expressions
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* prompt - eemonstration of some uses of prompt() and eval()
|
||||
* prompt - demonstration of some uses of prompt() and eval()
|
||||
*
|
||||
* Copyright (C) 1999 Ernest Bowen
|
||||
*
|
||||
@@ -61,9 +61,9 @@
|
||||
* nothing to sum. The last line returns the value 3, i.e. the last
|
||||
* non-null value found for the expressions separated by semicolons,
|
||||
* so sum will be increased by 3 after the "print sum^2;" command
|
||||
* is executed. xxx The terminating semicolon is essential in the
|
||||
* is executed. XXX The terminating semicolon is essential in the
|
||||
* last two lines. A command like eval("print 7;") is acceptable to
|
||||
* calc but eval("print 7") causes an exit from calc. xxx)
|
||||
* calc but eval("print 7") causes an exit from calc. XXX)
|
||||
*
|
||||
* If the value returned is not a number (e.g. the name of a list or matrix,
|
||||
* or if the string has syntax errors as in "2 + ", in which case the
|
||||
@@ -75,7 +75,7 @@
|
||||
* "sin(x)", "x^2 + 3*x", "exp(x, 1e-5)".
|
||||
*
|
||||
* Values of the function so defined are returned for values of x
|
||||
* entered in reponse to the ? prompt. Operation is terminated by
|
||||
* entered in response to the ? prompt. Operation is terminated by
|
||||
* entering "end", "exit" or "quit".
|
||||
*/
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* quat - alculate using quaternions of the form: a + bi + cj + dk
|
||||
* quat - calculate using quaternions of the form: a + bi + cj + dk
|
||||
*
|
||||
* Copyright (C) 1999 David I. Bell
|
||||
*
|
||||
|
@@ -45,9 +45,9 @@ randmprime(bits, seed, dbg)
|
||||
local n; /* n as in h*2^n-1 */
|
||||
local h; /* h as in h*2^n-1 */
|
||||
local plush; /* value added to h since the beginning */
|
||||
local init; /* initial cpu time */
|
||||
local start; /* cpu time before last test */
|
||||
local stop; /* cpu time afte last test */
|
||||
local init; /* initial CPU time */
|
||||
local start; /* CPU time before last test */
|
||||
local stop; /* CPU time after last test */
|
||||
local tmp; /* just a tmp place holder value */
|
||||
local ret; /* h*2^n-1 that is prime */
|
||||
|
||||
|
@@ -43,7 +43,7 @@ global prob; /* libregress.cal problem counter */
|
||||
prob = 0; /* clear problem counter */
|
||||
|
||||
errcount(0),; /* clear error count */
|
||||
errmax(-1),; /* prevent errcount from abouting */
|
||||
errmax(-1),; /* prevent errcount from aborting */
|
||||
|
||||
global ecnt; /* expected value of errcount() */
|
||||
ecnt = 0; /* clear expected errcount() value */
|
||||
@@ -453,7 +453,7 @@ define test_config()
|
||||
'539: config("more", ">> ") == ";; "');
|
||||
vrfy(config("all") == oldcfg, '540: config("all") == oldcfg');
|
||||
|
||||
/* restore the configation at the start of this function */
|
||||
/* restore the configuration at the start of this function */
|
||||
vrfy(config("all",callcfg) == oldcfg,
|
||||
'541: config("all",callcfg) == oldcfg');
|
||||
|
||||
@@ -3156,7 +3156,7 @@ print '047: parsed test_poly()';
|
||||
|
||||
|
||||
/*
|
||||
* test_det - more determinent testing
|
||||
* test_det - more determinant testing
|
||||
*/
|
||||
read -once "test3300";
|
||||
print '048: read -once test3300';
|
||||
@@ -3473,7 +3473,7 @@ print '065: parsed test_param()';
|
||||
|
||||
|
||||
/*
|
||||
* test_noarg - test missing argment functionality
|
||||
* test_noarg - test missing argument functionality
|
||||
*/
|
||||
define test_noarg()
|
||||
{
|
||||
@@ -5183,7 +5183,7 @@ define test_size()
|
||||
'5715: sizeof(17^139 + 674)*2 == sizeof(q)');
|
||||
|
||||
/*
|
||||
* recipricals are the same size of their integer inverses
|
||||
* reciprocals are the same size of their integer inverses
|
||||
*/
|
||||
q = 1/13;
|
||||
print '5716: q = 1/13';
|
||||
@@ -5261,7 +5261,7 @@ define test_size()
|
||||
|
||||
/*
|
||||
* size of a matrix is the sum of the sizes of the elements
|
||||
* sizeof of a matrix is the sum of the sizeofs of the elements
|
||||
* sizeof of a matrix is the sum of the sizeof's of the elements
|
||||
*/
|
||||
mat m[] = {z,q,c};
|
||||
print '5752: mat m[] = {z,q,c}';
|
||||
@@ -5381,7 +5381,7 @@ define test_is()
|
||||
{
|
||||
local loc; /* unassigned local variable */
|
||||
local a; /* assoc */
|
||||
local ofd; /* open file desriptor */
|
||||
local ofd; /* open file descriptor */
|
||||
local cfd; /* closed file descriptor */
|
||||
local blk; /* unnamed block */
|
||||
local nblk; /* named block */
|
||||
@@ -5398,7 +5398,7 @@ define test_is()
|
||||
local object; /* object */
|
||||
local rand; /* rand seed */
|
||||
local random; /* random seed */
|
||||
local real; /* real non-intger value */
|
||||
local real; /* real non-integer value */
|
||||
local prime; /* odd prime */
|
||||
local square; /* square of an odd prime */
|
||||
local string; /* string */
|
||||
@@ -7482,7 +7482,7 @@ print '190: parsed test_somenew()';
|
||||
|
||||
|
||||
/*
|
||||
* test_exponentiation - test new exponentiation functionaltiy
|
||||
* test_exponentiation - test new exponentiation functionality
|
||||
*/
|
||||
define test_exponentiation()
|
||||
{
|
||||
@@ -7573,7 +7573,7 @@ define test_quit()
|
||||
quit;
|
||||
prob('quit did not end the test_quit() function');
|
||||
|
||||
/* 8400 serise continued after return, do not print end here */
|
||||
/* 8400 series continued after return, do not print end here */
|
||||
}
|
||||
print '191: parsed test_quit()';
|
||||
|
||||
@@ -7874,7 +7874,7 @@ print '8406: Ending test_quit';
|
||||
|
||||
|
||||
/*
|
||||
* test_divmod - psuedo-random tests on the // and % with various rounding modes
|
||||
* test_divmod - pseudo-random tests on the // and % with various rounding modes
|
||||
*/
|
||||
print;
|
||||
print '8500: Starting test of divmod'
|
||||
@@ -7900,7 +7900,7 @@ vrfy(config("redecl_warn",0), '8651: config("redecl_warn",0)');
|
||||
vrfy(config("dupvar_warn",0), '8652: config("dupvar_warn",0)');
|
||||
vrfy(u_glob == 6, '8653: u_glob == 6');
|
||||
global u_glob = 555;
|
||||
print '8654: reclare u_glob';
|
||||
print '8654: declare u_glob';
|
||||
vrfy(u_glob == 555, '8655: u_glob == 555');
|
||||
define func_8650(u_glob) { local u_glob; return u_glob; }
|
||||
print '8656: u_glob as both local and parameter';
|
||||
@@ -7928,7 +7928,7 @@ vrfy(dotest("set8700.line", 8703) == 0,
|
||||
|
||||
|
||||
/*
|
||||
* new exponentiation functionaltiy
|
||||
* new exponentiation functionality
|
||||
*/
|
||||
print;
|
||||
return test_exponentiation();
|
||||
@@ -8074,7 +8074,7 @@ return test_functions2();
|
||||
*
|
||||
* beer.cal - prints a bunch of things when loaded
|
||||
* hello.cal - designed to go into an infinite loop
|
||||
* lucal.cal - already read by this file
|
||||
* lucas.cal - already read by this file
|
||||
* lucas_chk.cal - already read by this file
|
||||
* regress.cal - this file
|
||||
* surd.cal - already read by this file
|
||||
|
@@ -442,8 +442,8 @@ define lngamma(z)
|
||||
if (tmp2 < tmp) {
|
||||
return
|
||||
newerror(strcat
|
||||
("lngamma(1): something happend that ",
|
||||
"should not have happend"));
|
||||
("lngamma(1): something happened ",
|
||||
"that shouldn't have happened"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -519,8 +519,8 @@ define lngamma(z)
|
||||
if (tmp2 < tmp) {
|
||||
return
|
||||
newerror(strcat
|
||||
("lngamma(1): something happend ",
|
||||
"that should not have happend"));
|
||||
("lngamma(1): something happened ",
|
||||
"that should not have happened"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -576,8 +576,8 @@ define lngamma(z)
|
||||
if (tmp2 < tmp) {
|
||||
return
|
||||
newerror(strcat
|
||||
("lngamma(1): something happend ",
|
||||
"that should not have happend"));
|
||||
("lngamma(1): something happened ",
|
||||
"that should not have happened"));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1047,7 +1047,7 @@ define __CZ__ibeta_cf_var_dm(a, b, z, max)
|
||||
}
|
||||
}
|
||||
if (m > max) {
|
||||
return newerror("ibeta: continous fraction does not converge");
|
||||
return newerror("ibeta: continuous fraction does not converge");
|
||||
}
|
||||
return f;
|
||||
}
|
||||
@@ -1290,7 +1290,7 @@ define __CZ__erfinvapprox(x)
|
||||
- (2 / (pi() * a) + (ln(1 - x ^ 2)) / 2));
|
||||
}
|
||||
|
||||
/* complementary inverse errror function, faster at about x < 1-.91
|
||||
/* complementary inverse error function, faster at about x < 1-.91
|
||||
Henry E. Fettis. "A stable algorithm for computing the inverse error function
|
||||
in the 'tail-end' region" Math. Comp., 28:585-587, 1974.
|
||||
*/
|
||||
@@ -1324,7 +1324,7 @@ define __CZ__fettiscf(y, n)
|
||||
return t / (1 + r);
|
||||
}
|
||||
|
||||
/* inverse errror function, faster at about x<=.91*/
|
||||
/* inverse error function, faster at about x<=.91*/
|
||||
define __CZ__inverfbin(x)
|
||||
{
|
||||
local places approx flow fhigh eps high low mid fmid epsilon;
|
||||
@@ -1370,7 +1370,7 @@ define erfinv(x)
|
||||
x = -x;
|
||||
flag = 1;
|
||||
}
|
||||
/* No need for full pecision */
|
||||
/* No need for full precision */
|
||||
eps = epsilon(1e-20);
|
||||
if (eps >= 1e-40) {
|
||||
/* Winitzki, Sergei (6 February 2008). "A handy approximation for the
|
||||
|
@@ -106,7 +106,7 @@ define invbetainc_slow(x,a,b){
|
||||
GW Cran, KJ Martin, GE Thomas,
|
||||
Remark AS R19 and Algorithm AS 109:
|
||||
A Remark on Algorithms AS 63: The Incomplete Beta Integral
|
||||
and AS 64: Inverse of the Incomplete Beta Integeral,
|
||||
and AS 64: Inverse of the Incomplete Beta integral,
|
||||
Applied Statistics,
|
||||
Volume 26, Number 1, 1977, pages 111-114.
|
||||
|
||||
|
@@ -50,7 +50,7 @@
|
||||
* of b in power(a, b, eps) is large, the computation required for
|
||||
* a test may be very heavy.
|
||||
*
|
||||
* Test funcations are called as:
|
||||
* Test functions are called as:
|
||||
*
|
||||
* testabc(str, ..., verbose)
|
||||
*
|
||||
|
@@ -84,7 +84,7 @@ define mkfrac() = rand(2) ? mkposfrac() : -mkposfrac();
|
||||
define mksquarereal() = mknonnegreal()^2;
|
||||
|
||||
/*
|
||||
* We might be able to do better than the following. For nonsquare
|
||||
* We might be able to do better than the following. For non-square
|
||||
* positive integer less than 1e6, could use:
|
||||
* x = rand(1, 1000);
|
||||
* return rand(x^2 + 1, (x + 1)^2);
|
||||
|
@@ -35,7 +35,7 @@ defaultverbose = 1; /* default verbose value */
|
||||
* with zero value, when the definition is read.
|
||||
*
|
||||
* The variable a5100 is initialized with the value x if and when this
|
||||
* function is first called with a positive even x. The varable b5100
|
||||
* function is first called with a positive even x. The variable b5100
|
||||
* is similarly initialized if and when this function is first called positive
|
||||
* odd x.
|
||||
*
|
||||
|
@@ -169,7 +169,7 @@ define divmod_8500(N = 10, M1 = 2^128, M2 = 2^64, testnum = 0)
|
||||
}
|
||||
|
||||
/*
|
||||
* seelect one of the 32 rounding modes at random
|
||||
* select one of the 32 rounding modes at random
|
||||
*/
|
||||
rnd = rand(32);
|
||||
|
||||
|
@@ -26,7 +26,7 @@ static __CZ__eps = 1e-20;
|
||||
|
||||
|
||||
/*
|
||||
* load once, the calc resource functions contribued by Christoph Zurnieden
|
||||
* load once, the calc resource functions contributed by Christoph Zurnieden
|
||||
*/
|
||||
read -once bernpoly.cal;
|
||||
read -once brentsolve.cal;
|
||||
@@ -45,7 +45,7 @@ read -once intnum.cal;
|
||||
/*
|
||||
* tests of correctness of the functions implemented by the above listed
|
||||
* author. All values tested against have been computed with at least two
|
||||
* independant algorithms where possible (indicated if not).
|
||||
* independent algorithms where possible (indicated if not).
|
||||
*/
|
||||
define t01()
|
||||
{
|
||||
@@ -1649,7 +1649,7 @@ define t03()
|
||||
/* test 04 tests polygamma(m,z) for the following values (m==0 gets computed
|
||||
* by psi()).
|
||||
* Values tested against were computed with Mathematica(TM) only
|
||||
* (z in the left complex halfplane does not get computed yet)
|
||||
* (z in the left complex half plane does not get computed yet)
|
||||
*/
|
||||
define t04()
|
||||
{
|
||||
|
@@ -320,16 +320,16 @@ define toomcook4square(a){
|
||||
}
|
||||
|
||||
/*
|
||||
TODO: Implement the asymmetric variations
|
||||
*/
|
||||
* TODO: Implement the asymmetric variations
|
||||
*/
|
||||
|
||||
/*
|
||||
produce_long_random_number(n) returns large pseudorandom numbers. Really large
|
||||
numbers, e.g.:
|
||||
produce_long_random_number(16)
|
||||
is ca 4,128,561 bits (ca 1,242,821 dec. digits) large. Exact length is not
|
||||
predeterminable because of the chaotic output of the function random().
|
||||
*/
|
||||
* produce_long_random_number(n) returns large pseudo-random numbers.
|
||||
* Really large numbers, e.g.:
|
||||
* produce_long_random_number(16)
|
||||
* is ca 4,128,561 bits (ca 1,242,821 dec. digits) large. Exact length is not
|
||||
* pre-determinable because of the chaotic output of the function random().
|
||||
*/
|
||||
define __CZ__produce_long_random_number(n)
|
||||
{
|
||||
local ret k;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* unixfrac - represent a fraction as a sum of distince unit fractions
|
||||
* unixfrac - represent a fraction as a sum of distance unit fractions
|
||||
*
|
||||
* Copyright (C) 1999 David I. Bell
|
||||
*
|
||||
|
@@ -34,7 +34,7 @@ define hurwitzzeta(s,a){
|
||||
/*
|
||||
According to Linas Vepstas' "An efficient algorithm for accelerating
|
||||
the convergence of oscillatory series, useful for computing the
|
||||
polylogarithm and Hurwitz zeta functions" the Euler-Maclaurin series
|
||||
poly-logarithm and Hurwitz zeta functions" the Euler-Maclaurin series
|
||||
is the fastest in most cases.
|
||||
|
||||
With a lot of help of the PARI/GP implementation by Prof. Henri Cohen,
|
||||
@@ -78,7 +78,7 @@ define hurwitzzeta(s,a){
|
||||
print "limit = " limit;
|
||||
print "prec = " precision;
|
||||
}
|
||||
/* Full precison plus 5 digits angstzuschlag*/
|
||||
/* Full precision plus 5 digits angstzuschlag*/
|
||||
epsilon( (10^(-precision)) * 1e-5);
|
||||
tmp3=(a+limit_function+0.)^(-s);
|
||||
sum3 = tmp3/2;
|
||||
|
4
calc.h
4
calc.h
@@ -232,8 +232,8 @@ EXTERN int no_env; /* TRUE (-e) => ignore env vars on startup */
|
||||
EXTERN long errmax; /* if >= 0, error when errcount exceeds errmax */
|
||||
EXTERN int use_old_std; /* TRUE (-O) => use classic configuration */
|
||||
|
||||
EXTERN int allow_read; /* FALSE => dont open any files for reading */
|
||||
EXTERN int allow_write; /* FALSE => dont open any files for writing */
|
||||
EXTERN int allow_read; /* FALSE => don't open any files for reading */
|
||||
EXTERN int allow_write; /* FALSE => don't open any files for writing */
|
||||
EXTERN int allow_exec; /* FALSE => may not execute any commands */
|
||||
|
||||
/*
|
||||
|
2
calc.man
2
calc.man
@@ -1401,7 +1401,7 @@ gziped (or compressed) tar file).
|
||||
Please try to generate a patch against the most recent
|
||||
version of calc, and if you use GitHub, the top of the
|
||||
master branch:
|
||||
sp
|
||||
.sp
|
||||
.nf
|
||||
.in +0.5i
|
||||
https://github.com/lcn2/calc
|
||||
|
@@ -2607,7 +2607,7 @@ getid(char *buf)
|
||||
* global or if symtype is static and the old variable is at the same
|
||||
* level. Warnings are issued when a global or local variable is
|
||||
* redeclared and when in the same body the variable will be accessible only
|
||||
^ with the appropriate specfier.
|
||||
^ with the appropriate specifier.
|
||||
*/
|
||||
S_FUNC void
|
||||
definesymbol(char *name, int symtype)
|
||||
|
@@ -553,7 +553,7 @@ c_log(COMPLEX *c, NUMBER *epsilon)
|
||||
/* first time call */
|
||||
cln_10_epsilon = qcopy(epsilon);
|
||||
} else if (qcmp(cln_10_epsilon, epsilon) == TRUE) {
|
||||
/* replaced cacheed value with epsilon arg */
|
||||
/* replaced cached value with epsilon arg */
|
||||
qfree(cln_10_epsilon);
|
||||
cln_10_epsilon = qcopy(epsilon);
|
||||
} else if (cln_10 != NULL) {
|
||||
|
4
config.h
4
config.h
@@ -130,7 +130,7 @@ struct config {
|
||||
LEN sq2; /* size of number to use square algorithm 2 */
|
||||
LEN pow2; /* size of modulus to use REDC for powers */
|
||||
LEN redc2; /* size of modulus to use REDC algorithm 2 */
|
||||
BOOL tilde_ok; /* ok to print a tilde on aproximations */
|
||||
BOOL tilde_ok; /* ok to print a tilde on approximations */
|
||||
BOOL tab_ok; /* ok to print tab before numeric values */
|
||||
LEN quomod; /* quomod() default rounding mode */
|
||||
LEN quo; /* quotient // default rounding mode */
|
||||
@@ -163,7 +163,7 @@ struct config {
|
||||
BOOL *allow_custom; /* ptr to if custom functions are allowed */
|
||||
char *version; /* calc version string */
|
||||
int baseb; /* base for calculations */
|
||||
BOOL redecl_warn; /* TRUE => warn of redeclating variables */
|
||||
BOOL redecl_warn; /* TRUE => warn of redeclaring variables */
|
||||
BOOL dupvar_warn; /* TRUE => warn of var name collisions */
|
||||
};
|
||||
typedef struct config CONFIG;
|
||||
|
@@ -76,7 +76,7 @@ mersenne exp
|
||||
|
||||
piforever
|
||||
|
||||
Print the value of pi forever, or as long as you cpu / memory allows.
|
||||
Print the value of pi forever, or as long as you CPU / memory allows.
|
||||
|
||||
|
||||
plus arg ...
|
||||
|
@@ -1,6 +1,6 @@
|
||||
#!/usr/local/src/bin/calc/calc -q -s -f
|
||||
/*
|
||||
* piforever - print digits of pi forever (or as long as your mem/cpu allow)
|
||||
* piforever - print digits of pi forever (or as long as your mem/CPU allow)
|
||||
*
|
||||
* Copyright (C) 1999-2007,2014,2019 Landon Curt Noll
|
||||
*
|
||||
|
2
custom.c
2
custom.c
@@ -109,7 +109,7 @@ custom(char *name, int count, VALUE **vals)
|
||||
|
||||
|
||||
/*
|
||||
* showcustom - display the names and brief descriptins of custom functions
|
||||
* showcustom - display the names and brief descriptions of custom functions
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
|
4
custom.h
4
custom.h
@@ -35,7 +35,7 @@
|
||||
*
|
||||
* before they include this file.
|
||||
*
|
||||
* Keep this file down to a minimum. Don't put custom builtin funcion
|
||||
* Keep this file down to a minimum. Don't put custom builtin function
|
||||
* stuff in this file!
|
||||
*/
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
|
||||
|
||||
/*
|
||||
* arg count definitons
|
||||
* arg count definitions
|
||||
*/
|
||||
#define MAX_CUSTOM_ARGS 100 /* maximum number of custom arguments */
|
||||
|
||||
|
@@ -220,7 +220,7 @@ Step 5: Write your custom function
|
||||
NOTE: If you do not use any of the 3 function parameters,
|
||||
then you should declare that function parameter to be UNUSED.
|
||||
For example, if the count and vals parameters were not used
|
||||
in your custom function, then your declaraction should be:
|
||||
in your custom function, then your declaration should be:
|
||||
|
||||
/*ARGSUSED*/
|
||||
VALUE
|
||||
|
@@ -36,7 +36,7 @@
|
||||
#
|
||||
# make ...__optional_arguments_... target=value
|
||||
|
||||
# Try uname -s if the target was not alreadhy set on the make command line
|
||||
# Try uname -s if the target was not already set on the make command line
|
||||
#
|
||||
ifeq ($(target),)
|
||||
target=$(shell uname -s 2>/dev/null)
|
||||
@@ -125,7 +125,7 @@ Q=@
|
||||
#INCDIR= /dev/env/DJDIR/include
|
||||
INCDIR= /usr/include
|
||||
|
||||
# where to install calc realted things
|
||||
# where to install calc related things
|
||||
#
|
||||
# ${BINDIR} where to install calc binary files
|
||||
# ${LIBDIR} where calc link library (*.a) files are installed
|
||||
@@ -391,7 +391,7 @@ AWK= awk
|
||||
# NOTE: These should be left blank in this Makefile to make it
|
||||
# easier to add stuff on the command line. If you want to
|
||||
# to change the way calc is compiled by this Makefile, change
|
||||
# the appropirate host target section below or a flag above.
|
||||
# the appropriate host target section below or a flag above.
|
||||
#
|
||||
EXTRA_CFLAGS=
|
||||
EXTRA_LDFLAGS=
|
||||
@@ -1084,7 +1084,7 @@ CUSTCALC_OBJ= ${REQUIRED_OBJ} ${CUSTOM_OBJ}
|
||||
#
|
||||
C_SRC= ${REQUIRED_SRC} ${CUSTOM_SRC}
|
||||
|
||||
# These .h files are used to build the dependecy list
|
||||
# These .h files are used to build the dependency list
|
||||
#
|
||||
H_SRC= ${CUSTOM_H_SRC}
|
||||
|
||||
@@ -1101,7 +1101,7 @@ DISTLIST= ${CUSTCALC_SRC} ${CUSTOM_CALC_FILES} ${CUSTOM_HELP} \
|
||||
#
|
||||
CALCLIBLIST= ${CUSTCALC_SRC} ${INSTALL_H_SRC} ${MAKE_FILE} HOW_TO_ADD
|
||||
|
||||
# This is the custom dynbamic shared library that is build
|
||||
# This is the custom dynamic shared library that is build
|
||||
#
|
||||
CALC_DYNAMIC_LIBCUSTCALC= libcustcalc${LIB_EXT_VERSION}
|
||||
|
||||
@@ -1155,7 +1155,7 @@ c_sysinfo.o: c_sysinfo.c ${MAKE_FILE}
|
||||
|
||||
###
|
||||
#
|
||||
# building calc-static and static lib*.a libraires
|
||||
# building calc-static and static lib*.a libraries
|
||||
#
|
||||
###
|
||||
|
||||
@@ -1174,7 +1174,7 @@ libcustcalc.a: ${CUSTCALC_OBJ} ${MAKE_FILE}
|
||||
# sub-directory called calc/lib.
|
||||
#
|
||||
# NOTE: Due to bogus shells found on one common system we must have
|
||||
# an non-emoty else clause for every if condition. *sigh*
|
||||
# an non-empty else clause for every if condition. *sigh*
|
||||
#
|
||||
##
|
||||
|
||||
@@ -1213,7 +1213,7 @@ Makefile.simple: ${MAKE_FILE}
|
||||
# Home grown make dependency rules. Your system make not support
|
||||
# or have the needed tools. You can ignore this section.
|
||||
#
|
||||
# We will form a skelaton tree of *.c files containing only #include "foo.h"
|
||||
# We will form a skeleton tree of *.c files containing only #include "foo.h"
|
||||
# lines and .h files containing the same lines surrounded by multiple include
|
||||
# prevention lines. This allows us to build a static depend list that will
|
||||
# satisfy all possible cpp symbol definition combinations.
|
||||
@@ -1531,7 +1531,7 @@ uninstall:
|
||||
if [ -f "${T}${CUSTOMCALDIR}/libcustcalc.a" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
echo "un-installed ${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
fi; \
|
||||
fi
|
||||
-${Q} for i in ${CUSTOM_HELP} /dev/null; do \
|
||||
@@ -1543,7 +1543,7 @@ uninstall:
|
||||
if [ -f "${T}${CUSTOMHELPDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
echo "un-installed ${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
@@ -1556,7 +1556,7 @@ uninstall:
|
||||
if [ -f "${T}${CUSTOMCALDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMCALDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMCALDIR}/$$i"; \
|
||||
echo "un-installed ${T}${CUSTOMCALDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
@@ -1569,7 +1569,7 @@ uninstall:
|
||||
if [ -f "${T}${CUSTOMINCDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMINCDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMINCDIR}/$$i"; \
|
||||
echo "un-installed ${T}${CUSTOMINCDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
|
@@ -36,7 +36,7 @@
|
||||
#
|
||||
# make ...__optional_arguments_... target=value
|
||||
|
||||
# Try uname -s if the target was not alreadhy set on the make command line
|
||||
# Try uname -s if the target was not already set on the make command line
|
||||
#
|
||||
ifeq ($(target),)
|
||||
target=$(shell uname -s 2>/dev/null)
|
||||
@@ -125,7 +125,7 @@ Q=@
|
||||
#INCDIR= /dev/env/DJDIR/include
|
||||
INCDIR= /usr/include
|
||||
|
||||
# where to install calc realted things
|
||||
# where to install calc related things
|
||||
#
|
||||
# ${BINDIR} where to install calc binary files
|
||||
# ${LIBDIR} where calc link library (*.a) files are installed
|
||||
@@ -391,7 +391,7 @@ AWK= awk
|
||||
# NOTE: These should be left blank in this Makefile to make it
|
||||
# easier to add stuff on the command line. If you want to
|
||||
# to change the way calc is compiled by this Makefile, change
|
||||
# the appropirate host target section below or a flag above.
|
||||
# the appropriate host target section below or a flag above.
|
||||
#
|
||||
EXTRA_CFLAGS=
|
||||
EXTRA_LDFLAGS=
|
||||
|
@@ -32,7 +32,7 @@ CUSTCALC_OBJ= ${REQUIRED_OBJ} ${CUSTOM_OBJ}
|
||||
#
|
||||
C_SRC= ${REQUIRED_SRC} ${CUSTOM_SRC}
|
||||
|
||||
# These .h files are used to build the dependecy list
|
||||
# These .h files are used to build the dependency list
|
||||
#
|
||||
H_SRC= ${CUSTOM_H_SRC}
|
||||
|
||||
@@ -49,7 +49,7 @@ DISTLIST= ${CUSTCALC_SRC} ${CUSTOM_CALC_FILES} ${CUSTOM_HELP} \
|
||||
#
|
||||
CALCLIBLIST= ${CUSTCALC_SRC} ${INSTALL_H_SRC} ${MAKE_FILE} HOW_TO_ADD
|
||||
|
||||
# This is the custom dynbamic shared library that is build
|
||||
# This is the custom dynamic shared library that is build
|
||||
#
|
||||
CALC_DYNAMIC_LIBCUSTCALC= libcustcalc${LIB_EXT_VERSION}
|
||||
|
||||
@@ -103,7 +103,7 @@ c_sysinfo.o: c_sysinfo.c ${MAKE_FILE}
|
||||
|
||||
###
|
||||
#
|
||||
# building calc-static and static lib*.a libraires
|
||||
# building calc-static and static lib*.a libraries
|
||||
#
|
||||
###
|
||||
|
||||
@@ -122,7 +122,7 @@ libcustcalc.a: ${CUSTCALC_OBJ} ${MAKE_FILE}
|
||||
# sub-directory called calc/lib.
|
||||
#
|
||||
# NOTE: Due to bogus shells found on one common system we must have
|
||||
# an non-emoty else clause for every if condition. *sigh*
|
||||
# an non-empty else clause for every if condition. *sigh*
|
||||
#
|
||||
##
|
||||
|
||||
@@ -161,7 +161,7 @@ Makefile.simple: ${MAKE_FILE}
|
||||
# Home grown make dependency rules. Your system make not support
|
||||
# or have the needed tools. You can ignore this section.
|
||||
#
|
||||
# We will form a skelaton tree of *.c files containing only #include "foo.h"
|
||||
# We will form a skeleton tree of *.c files containing only #include "foo.h"
|
||||
# lines and .h files containing the same lines surrounded by multiple include
|
||||
# prevention lines. This allows us to build a static depend list that will
|
||||
# satisfy all possible cpp symbol definition combinations.
|
||||
@@ -479,7 +479,7 @@ uninstall:
|
||||
if [ -f "${T}${CUSTOMCALDIR}/libcustcalc.a" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
echo "un-installed ${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
fi; \
|
||||
fi
|
||||
-${Q} for i in ${CUSTOM_HELP} /dev/null; do \
|
||||
@@ -491,7 +491,7 @@ uninstall:
|
||||
if [ -f "${T}${CUSTOMHELPDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
echo "un-installed ${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
@@ -504,7 +504,7 @@ uninstall:
|
||||
if [ -f "${T}${CUSTOMCALDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMCALDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMCALDIR}/$$i"; \
|
||||
echo "un-installed ${T}${CUSTOMCALDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
@@ -517,7 +517,7 @@ uninstall:
|
||||
if [ -f "${T}${CUSTOMINCDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMINCDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMINCDIR}/$$i"; \
|
||||
echo "un-installed ${T}${CUSTOMINCDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
|
@@ -124,7 +124,7 @@ c_pmodm127(char UNUSED *name, int UNUSED count, VALUE **vals)
|
||||
result.v_type = V_NUM;
|
||||
|
||||
/*
|
||||
* compute 2^(2^127-1) mod q by modular exponentation
|
||||
* compute 2^(2^127-1) mod q by modular exponentiation
|
||||
*
|
||||
* We implement the following calc code in C:
|
||||
*
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* c_pzasusb8 - print numereator as a string of USB8s
|
||||
* c_pzasusb8 - print numerator as a string of USB8s
|
||||
*
|
||||
* Copyright (C) 1999-2004 Ernest Bowen
|
||||
*
|
||||
@@ -36,7 +36,7 @@
|
||||
#include "have_unused.h"
|
||||
|
||||
/*
|
||||
* c_pzasusb8 - print numereator as a string of USB8s
|
||||
* c_pzasusb8 - print numerator as a string of USB8s
|
||||
*
|
||||
* given:
|
||||
* count = 1;
|
||||
|
@@ -177,15 +177,15 @@ STATIC struct infoname sys_info[] = {
|
||||
(FULL)MAXUFULL},
|
||||
{"MAXULONG", "largest unsigned long val", NULL,
|
||||
(FULL)MAXULONG},
|
||||
{"MAX_MAP_PRIME", "larest prime in pr_map", NULL,
|
||||
{"MAX_MAP_PRIME", "largest prime in pr_map", NULL,
|
||||
(FULL)MAX_MAP_PRIME},
|
||||
{"MAX_MAP_VAL", "larest bit in pr_map", NULL,
|
||||
{"MAX_MAP_VAL", "largest bit in pr_map", NULL,
|
||||
(FULL)MAX_MAP_VAL},
|
||||
{"MAX_PFACT_VAL", "max x, for which pfact(x) is a long", NULL,
|
||||
(FULL)MAX_PFACT_VAL},
|
||||
{"MAX_SM_PRIME", "larest 32 bit prime", NULL,
|
||||
{"MAX_SM_PRIME", "largest 32 bit prime", NULL,
|
||||
(FULL)MAX_SM_PRIME},
|
||||
{"MAX_SM_VAL", "larest 32 bit value", NULL,
|
||||
{"MAX_SM_VAL", "largest 32 bit value", NULL,
|
||||
(FULL)MAX_SM_VAL},
|
||||
{"MUL_ALG2", "default size for alternative multiply", NULL,
|
||||
(FULL)MUL_ALG2},
|
||||
|
@@ -40,7 +40,7 @@
|
||||
|
||||
|
||||
/*
|
||||
* add your forward custom function declaractions here
|
||||
* add your forward custom function declarations here
|
||||
*
|
||||
* Declare custom functions as follows:
|
||||
*
|
||||
|
@@ -10,7 +10,7 @@ TYPES
|
||||
return null
|
||||
|
||||
DESCRIPTION
|
||||
This custom function does nothing. It is intented for testing
|
||||
This custom function does nothing. It is intended for testing
|
||||
of the general custom interface.
|
||||
|
||||
EXAMPLE
|
||||
|
@@ -21,7 +21,7 @@ DESCRIPTION
|
||||
|
||||
for details.
|
||||
|
||||
This custom function is intented for testing of the general
|
||||
This custom function is intended for testing of the general
|
||||
custom interface.
|
||||
|
||||
EXAMPLE
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* pzasusb8 - print numereator as a string of USB8s
|
||||
* pzasusb8 - print numerator as a string of USB8s
|
||||
*
|
||||
* Copyright (C) 1999,2004 Ernest Bowen and Landon Curt Noll
|
||||
*
|
||||
|
@@ -20,14 +20,14 @@ DESCRIPTION
|
||||
|
||||
The number of custom registers is defined at compile time.
|
||||
There will be at least 32 registers although there could be more
|
||||
added in the future. It may be deterimed by:
|
||||
added in the future. It may be determined by:
|
||||
|
||||
custom("sysinfo", "REGNUM_MAX")
|
||||
|
||||
The custom registers are initialized to 0 by the internal
|
||||
function libcalc_call_me_first() during calc startup.
|
||||
|
||||
This custom interface is intented to make it easier to interface
|
||||
This custom interface is intended to make it easier to interface
|
||||
with special purpose hardware.
|
||||
|
||||
EXAMPLE
|
||||
@@ -46,7 +46,7 @@ EXAMPLE
|
||||
LIMITS
|
||||
calc must be built with ALLOW_CUSTOM= -DCUSTOM
|
||||
calc must be executed with a -C arg.
|
||||
The regnum numbe bee an integer >= 0 and < REGNUM_MAX where
|
||||
The regnum number bee an integer >= 0 and < REGNUM_MAX where
|
||||
REGNUM_MAX is a compile time constant that is >= 32.
|
||||
|
||||
LIBRARY
|
||||
|
@@ -13,7 +13,7 @@ DESCRIPTION
|
||||
|
||||
This custom function will return the value certain selected #define
|
||||
values. The infoname arg must be a string that matches the given
|
||||
#define name. For conveience, the case infoname does not matter,
|
||||
#define name. For convenience, the case infoname does not matter,
|
||||
so "baseb" and "BASEB" refer to the same #define value.
|
||||
|
||||
The return value is either an integer or a string depending on
|
||||
|
2
endian.c
2
endian.c
@@ -25,7 +25,7 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* Big Endian: Amdahl, 68k, Pyramid, Mips, Sparc, ...
|
||||
* Big Endian: Amdahl, 68k, Pyramid, MIPS, Sparc, ...
|
||||
* Little Endian: Vax, 32k, Spim (Dec Mips), i386, i486, ...
|
||||
*/
|
||||
|
||||
|
12
file.c
12
file.c
@@ -99,7 +99,7 @@ S_FUNC void fskipnum(FILE *fp);
|
||||
|
||||
|
||||
/*
|
||||
* file_init - perform needed initilization work
|
||||
* file_init - perform needed initialization work
|
||||
*
|
||||
* On some systems, one cannot initialize a pointer to a FILE *.
|
||||
* This routine, called once at startup is a work-a-round for
|
||||
@@ -240,7 +240,7 @@ init_fileio(FILEIO *fiop, char *name, char *mode,
|
||||
* determine file open mode
|
||||
*
|
||||
* While a leading 'r' is for reading and a leading 'w' is
|
||||
* for writing, the presense of a '+' in the string means
|
||||
* for writing, the presence of a '+' in the string means
|
||||
* both reading and writing. A leading 'a' means append
|
||||
* which is writing.
|
||||
*/
|
||||
@@ -1408,7 +1408,7 @@ z2filepos(ZVALUE zpos)
|
||||
/*
|
||||
* firewall
|
||||
*/
|
||||
zpos.sign = 0; /* deal only with the absolue value */
|
||||
zpos.sign = 0; /* deal only with the absolute value */
|
||||
|
||||
/*
|
||||
* quick return if the position can fit into a long
|
||||
@@ -1649,7 +1649,7 @@ set_open_pos(FILE *fp, ZVALUE zpos)
|
||||
}
|
||||
|
||||
/*
|
||||
* return sucess
|
||||
* return success
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
@@ -2606,7 +2606,7 @@ isattyid(FILEID id)
|
||||
* given:
|
||||
* id FILEID to search
|
||||
* str string to look for
|
||||
* pos file postion to start at (NULL => current position)
|
||||
* pos file position to start at (NULL => current position)
|
||||
*
|
||||
* returns:
|
||||
* EOF if system error
|
||||
@@ -2616,7 +2616,7 @@ isattyid(FILEID id)
|
||||
*
|
||||
* XXX - This search is a translation of the original search that did not
|
||||
* work with large files. The search algorithm used is slow and
|
||||
* should be spead up much more.
|
||||
* should be speed up much more.
|
||||
*/
|
||||
int
|
||||
fsearch(FILEID id, char *str, ZVALUE start, ZVALUE end, ZVALUE *res)
|
||||
|
2
file.h
2
file.h
@@ -63,7 +63,7 @@ typedef struct {
|
||||
* Seek loc bytes from the beginning of the open file, stream.
|
||||
*
|
||||
* f_tell(FILE *stream, FILEPOS *loc)
|
||||
* Set loc to bytes from the beinning of the open file, stream.
|
||||
* Set loc to bytes from the beginning of the open file, stream.
|
||||
*
|
||||
* We assume that if your system does not have fgetpos/fsetpos,
|
||||
* then it will have a FILEPOS that is a scalar type (e.g., long).
|
||||
|
10
fposval.c
10
fposval.c
@@ -122,7 +122,7 @@ main(int argc, char **argv)
|
||||
#else /* HAVE_FILEPOS_SCALAR */
|
||||
/*
|
||||
* Normally a "(*(dest) = *(src))" would do, but on some
|
||||
* systems a FILEPOS is not a scalar hince we must memcpy.
|
||||
* systems a FILEPOS is not a scalar hence we must memcpy.
|
||||
*/
|
||||
printf("#define SWAP_HALF_IN_FILEPOS(dest, src)\t%s\n",
|
||||
"\\\n\tmemcpy((void *)(dest), (void *)(src), "
|
||||
@@ -163,7 +163,7 @@ main(int argc, char **argv)
|
||||
* Little Endian
|
||||
*
|
||||
* Normally a "(*(dest) = *(src))" would do, but on some
|
||||
* systems an off_t is not a scalar hince we must memcpy.
|
||||
* systems an off_t is not a scalar hence we must memcpy.
|
||||
*/
|
||||
#if defined(HAVE_OFF_T_SCALAR)
|
||||
printf("#define SWAP_HALF_IN_OFF_T(dest, src)\t\t%s\n",
|
||||
@@ -171,7 +171,7 @@ main(int argc, char **argv)
|
||||
#else /* HAVE_OFF_T_SCALAR */
|
||||
/*
|
||||
* Normally a "(*(dest) = *(src))" would do, but on some
|
||||
* systems, a off_t is not a scalar hince we must memcpy.
|
||||
* systems, a off_t is not a scalar hence we must memcpy.
|
||||
*/
|
||||
printf("#define SWAP_HALF_IN_OFF_T(dest, src)\t%s%d%s\n",
|
||||
"memcpy((void *)(dest), (void *)(src), ", stsizelen/8, ")");
|
||||
@@ -214,7 +214,7 @@ main(int argc, char **argv)
|
||||
* Little Endian
|
||||
*
|
||||
* Normally a "(*(dest) = *(src))" would do, but on some
|
||||
* systems, a DEV is not a scalar hince we must memcpy.
|
||||
* systems, a DEV is not a scalar hence we must memcpy.
|
||||
*/
|
||||
printf("#define SWAP_HALF_IN_DEV(dest, src)\t%s%d%s\n",
|
||||
"memcpy((void *)(dest), (void *)(src), ", devlen/8, ")");
|
||||
@@ -256,7 +256,7 @@ main(int argc, char **argv)
|
||||
* Little Endian
|
||||
*
|
||||
* Normally a "(*(dest) = *(src))" would do, but on some
|
||||
* systems, a INODE is not a scalar hince we must memcpy.
|
||||
* systems, a INODE is not a scalar hence we must memcpy.
|
||||
*/
|
||||
printf("#define SWAP_HALF_IN_INODE(dest, src)\t%s%d%s\n",
|
||||
"memcpy((void *)(dest), (void *)(src), ", inodelen/8, ")");
|
||||
|
28
func.c
28
func.c
@@ -5538,7 +5538,7 @@ f_usertime(void)
|
||||
NUMBER *secret; /* whole sconds of CPU time to return */
|
||||
NUMBER *usecret; /* microseconds of CPU time to return */
|
||||
|
||||
/* get the resource informaion for ourself */
|
||||
/* get the resource information for ourself */
|
||||
status = getrusage(who, &usage);
|
||||
if (status < 0) {
|
||||
/* system call error, so return 0 */
|
||||
@@ -5577,7 +5577,7 @@ f_systime(void)
|
||||
NUMBER *secret; /* whole sconds of CPU time to return */
|
||||
NUMBER *usecret; /* microseconds of CPU time to return */
|
||||
|
||||
/* get the resource informaion for ourself */
|
||||
/* get the resource information for ourself */
|
||||
status = getrusage(who, &usage);
|
||||
if (status < 0) {
|
||||
/* system call error, so return 0 */
|
||||
@@ -5617,7 +5617,7 @@ f_runtime(void)
|
||||
NUMBER *secret; /* whole sconds of CPU time to return */
|
||||
NUMBER *usecret; /* microseconds of CPU time to return */
|
||||
|
||||
/* get the resource informaion for ourself */
|
||||
/* get the resource information for ourself */
|
||||
status = getrusage(who, &usage);
|
||||
if (status < 0) {
|
||||
/* system call error, so return 0 */
|
||||
@@ -5734,7 +5734,7 @@ f_fpathopen(int count, VALUE **vals)
|
||||
/* initialize VALUE */
|
||||
result.v_subtype = V_NOSUBTYPE;
|
||||
|
||||
/* check for valid strongs */
|
||||
/* check for valid strong */
|
||||
if (vals[0]->v_type != V_STR || vals[1]->v_type != V_STR) {
|
||||
return error_value(E_FPATHOPEN1);
|
||||
}
|
||||
@@ -7840,7 +7840,7 @@ f_base(int count, NUMBER **vals)
|
||||
return base_value(conf->outmode, conf->outmode);
|
||||
}
|
||||
|
||||
/* deal with the specal modes first */
|
||||
/* deal with the special modes first */
|
||||
if (qisfrac(vals[0])) {
|
||||
return base_value(math_setmode(MODE_FRAC), conf->outmode);
|
||||
}
|
||||
@@ -7891,7 +7891,7 @@ f_base2(int count, NUMBER **vals)
|
||||
return base_value(conf->outmode2, conf->outmode2);
|
||||
}
|
||||
|
||||
/* deal with the specal modes first */
|
||||
/* deal with the special modes first */
|
||||
if (qisfrac(vals[0])) {
|
||||
return base_value(math_setmode2(MODE_FRAC), conf->outmode2);
|
||||
}
|
||||
@@ -8511,7 +8511,7 @@ f_version(void)
|
||||
{
|
||||
VALUE result;
|
||||
|
||||
/* return the calc verstion string */
|
||||
/* return the calc version string */
|
||||
result.v_type = V_STR;
|
||||
result.v_subtype = V_NOSUBTYPE;
|
||||
result.v_str = makestring(strdup(version()));
|
||||
@@ -8577,7 +8577,7 @@ STATIC CONST struct builtin builtins[] = {
|
||||
{"acsch", 1, 2, 0, OP_NOP, 0, f_acsch,
|
||||
"inverse csch of a within accuracy b"},
|
||||
{"agd", 1, 2, 0, OP_NOP, 0, f_agd,
|
||||
"inverse gudermannian function"},
|
||||
"inverse Gudermannian function"},
|
||||
{"append", 1, IN, FA, OP_NOP, 0, f_listappend,
|
||||
"append values to end of list"},
|
||||
{"appr", 1, 3, 0, OP_NOP, 0, f_appr,
|
||||
@@ -8788,7 +8788,7 @@ STATIC CONST struct builtin builtins[] = {
|
||||
{"gcdrem", 2, 2, 0, OP_NOP, qgcdrem, 0,
|
||||
"a divided repeatedly by gcd with b"},
|
||||
{"gd", 1, 2, 0, OP_NOP, 0, f_gd,
|
||||
"gudermannian function"},
|
||||
"Gudermannian function"},
|
||||
{"getenv", 1, 1, 0, OP_NOP, 0, f_getenv,
|
||||
"value of environment variable (or NULL)"},
|
||||
{"hash", 1, IN, 0, OP_NOP, 0, f_hash,
|
||||
@@ -9068,7 +9068,7 @@ STATIC CONST struct builtin builtins[] = {
|
||||
"reverse search matrix or list for value b\n"
|
||||
"\t\t\tstarting at index c"},
|
||||
{"runtime", 0, 0, 0, OP_NOP, f_runtime, 0,
|
||||
"user and kernel mode cpu time in seconds"},
|
||||
"user and kernel mode CPU time in seconds"},
|
||||
{"saveval", 1, 1, 0, OP_SAVEVAL, 0, 0,
|
||||
"set flag for saving values"},
|
||||
{"scale", 2, 2, 0, OP_SCALE, 0, 0,
|
||||
@@ -9087,7 +9087,7 @@ STATIC CONST struct builtin builtins[] = {
|
||||
{"sech", 1, 2, 0, OP_NOP, 0, f_sech,
|
||||
"hyperbolic secant of a within accuracy b"},
|
||||
{"seed", 0, 0, 0, OP_NOP, f_seed, 0,
|
||||
"return a 64 bit seed for a psuedo-random generator"},
|
||||
"return a 64 bit seed for a pseudo-random generator"},
|
||||
{"segment", 2, 3, 0, OP_NOP, 0, f_segment,
|
||||
"specified segment of specified list"},
|
||||
{"select", 2, 2, 0, OP_NOP, 0, f_select,
|
||||
@@ -9161,7 +9161,7 @@ STATIC CONST struct builtin builtins[] = {
|
||||
{"system", 1, 1, 0, OP_NOP, 0, f_system,
|
||||
"call Unix command"},
|
||||
{"systime", 0, 0, 0, OP_NOP, f_systime, 0,
|
||||
"kernel mode cpu time in seconds"},
|
||||
"kernel mode CPU time in seconds"},
|
||||
{"tail", 2, 2, 0, OP_NOP, 0, f_tail,
|
||||
"retain list of specified number at tail of list"},
|
||||
{"tan", 1, 2, 0, OP_NOP, 0, f_tan,
|
||||
@@ -9177,7 +9177,7 @@ STATIC CONST struct builtin builtins[] = {
|
||||
{"ungetc", 2, 2, 0, OP_NOP, 0, f_ungetc,
|
||||
"unget char read from file"},
|
||||
{"usertime", 0, 0, 0, OP_NOP, f_usertime, 0,
|
||||
"user mode cpu time in seconds"},
|
||||
"user mode CPU time in seconds"},
|
||||
{"version", 0, 0, 0, OP_NOP, 0, f_version,
|
||||
"calc version string"},
|
||||
{"xor", 1, IN, 0, OP_NOP, 0, f_xor,
|
||||
@@ -9194,7 +9194,7 @@ STATIC CONST struct builtin builtins[] = {
|
||||
*
|
||||
* When FUNCLIST is defined, we are being compiled by rules from the help
|
||||
* sub-directory to form a program that will produce the main part of the
|
||||
* buiiltin help file.
|
||||
* builtin help file.
|
||||
*
|
||||
* See the builtin rule in the help/Makefile for details.
|
||||
*/
|
||||
|
2
hash.c
2
hash.c
@@ -270,7 +270,7 @@ hash_final(HASH *state)
|
||||
* The input is a long. If a long is smaller than 64 bits, we will
|
||||
* hash a final 32 bits of zeros.
|
||||
*
|
||||
* This function is OK to hash BOOL's, unslogned long's, unsigned int's
|
||||
* This function is OK to hash BOOL's, unsigned long's, unsigned int's
|
||||
* signed int's as well as FLAG's and LEN's.
|
||||
*/
|
||||
HASH *
|
||||
|
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* have_const - Determine if we want or can support ansi const
|
||||
* have_const - Determine if we want or can support ANSI const
|
||||
*
|
||||
* Copyright (C) 1999 Landon Curt Noll
|
||||
*
|
||||
|
@@ -55,8 +55,8 @@ int
|
||||
main(void)
|
||||
{
|
||||
#if !defined(OFF_T_NON_SCALAR)
|
||||
off_t value; /* an off_t to perform arithmatic on */
|
||||
off_t value2; /* an off_t to perform arithmatic on */
|
||||
off_t value; /* an off_t to perform arithmetic on */
|
||||
off_t value2; /* an off_t to perform arithmetic on */
|
||||
|
||||
/*
|
||||
* do some math opts on an off_t
|
||||
|
@@ -55,8 +55,8 @@ int
|
||||
main(void)
|
||||
{
|
||||
#if !defined(FILEPOS_NON_SCALAR)
|
||||
FILEPOS value; /* an FILEPOS to perform arithmatic on */
|
||||
FILEPOS value2; /* an FILEPOS to perform arithmatic on */
|
||||
FILEPOS value; /* an FILEPOS to perform arithmetic on */
|
||||
FILEPOS value2; /* an FILEPOS to perform arithmetic on */
|
||||
|
||||
/*
|
||||
* do some math opts on an FILEPOS
|
||||
|
@@ -69,7 +69,7 @@ TOP_MAKE_FILE= Makefile
|
||||
#INCDIR= /dev/env/DJDIR/include
|
||||
INCDIR= /usr/include
|
||||
|
||||
# where to install calc realted things
|
||||
# where to install calc related things
|
||||
#
|
||||
# ${BINDIR} where to install calc binary files
|
||||
# ${LIBDIR} where calc link library (*.a) files are installed
|
||||
@@ -209,7 +209,7 @@ BLT_HELP_FILES_5= errorcodes
|
||||
|
||||
STD_HELP_FILES_6= file history interrupt list mat
|
||||
|
||||
# beacuse obj is built special (due to confusion with it as
|
||||
# because obj is built special (due to confusion with it as
|
||||
# a symlink for some built environments, we treat obj specially
|
||||
# and call it obj.file
|
||||
#
|
||||
@@ -249,7 +249,7 @@ FULL_HELP_FILES= ${STD_HELP_FILES_1} ${STD_HELP_FILES_2} \
|
||||
${BLT_HELP_FILES_13} ${STD_HELP_FILES_14} \
|
||||
${BLT_HELP_FILES_14} ${STD_HELP_FILES_15}
|
||||
|
||||
# These full files are those who are not built or constrcuted
|
||||
# These full files are those who are not built or constructed
|
||||
#
|
||||
STD_HELP_FILES= ${STD_HELP_FILES_1} ${STD_HELP_FILES_2} \
|
||||
${STD_HELP_FILES_4} ${STD_HELP_FILES_6} \
|
||||
@@ -271,7 +271,7 @@ BLT_HELP_FILES= ${BLT_HELP_FILES_3} ${BLT_HELP_FILES_5} \
|
||||
|
||||
# The detailed list of help files to install
|
||||
#
|
||||
# This list is prodiced by the detaillist rule when no WARNINGS are detected.
|
||||
# This list is produced by the detaillist rule when no WARNINGS are detected.
|
||||
#
|
||||
# Please use:
|
||||
#
|
||||
@@ -338,7 +338,7 @@ all: ${FULL_HELP_FILES} full ${DETAIL_HELP} ${DETAIL_CLONE} \
|
||||
# used by the upper level Makefile to determine of we have done all
|
||||
#
|
||||
# NOTE: Due to bogus shells found on one common system we must have
|
||||
# an non-emoty else clause for every if condition. *sigh*
|
||||
# an non-empty else clause for every if condition. *sigh*
|
||||
#
|
||||
.all:
|
||||
${RM} -f .all
|
||||
@@ -596,18 +596,18 @@ ${SINGULAR_FILES}: ${PLURAL_FILES}
|
||||
|
||||
# Form the builtin file
|
||||
#
|
||||
# We ave a "chicken-and-egg" problem. We want the builtn help file to
|
||||
# We have a "chicken-and-egg" problem. We want the builtin help file to
|
||||
# accurately reflect the function list. It would be nice if we could
|
||||
# just execute calc show builtin, but calc may not have been built or
|
||||
# buildable at this point. The hack-a-round used is to convert ../func.c
|
||||
# into a standalone program that generates a suitable function list
|
||||
# that is standwiched between the top and bottom builtin help text.
|
||||
# build-able at this point. The hack-a-round used is to convert ../func.c
|
||||
# into a stand-alone program that generates a suitable function list
|
||||
# that is sandwiched between the top and bottom builtin help text.
|
||||
#
|
||||
# We form funclist.c by sedding out unwanted stuff from builtins table,
|
||||
# converting NUMBER* and VALUE into harmless types and converting
|
||||
# the showbuiltins() function into main(). Combined with the -DFUNCLIST
|
||||
# we will avoid all of the complex calc types, macros and defines and
|
||||
# be left with just main() and a mininal builtins table.
|
||||
# be left with just main() and a minimal builtins table.
|
||||
#
|
||||
# Building funclist.o a portable fashion is ugly because some systems
|
||||
# do not treat -I.. correctly!
|
||||
@@ -662,7 +662,7 @@ calcliblist:
|
||||
done
|
||||
|
||||
# The BSDI cdrom makefile expects all help files to be pre-built. This rule
|
||||
# creats these fils so that the release can be shipped off to BSDI. You can
|
||||
# creates these files so that the release can be shipped off to BSDI. You can
|
||||
# ignore this rule.
|
||||
#
|
||||
bsdi: all
|
||||
|
@@ -75,7 +75,7 @@ DESCRIPTION
|
||||
Except in cases like strcat(A, "") when *A identified with a literal
|
||||
string as above, definitions of string values using strcat() or substr()
|
||||
will copy the relevant strings to newly allocated addresses which will
|
||||
be useable only while the variables retain these defined values.
|
||||
be usable only while the variables retain these defined values.
|
||||
For example, after
|
||||
|
||||
; B = C = strcat("a", "bc");
|
||||
|
4
help/agd
4
help/agd
@@ -1,5 +1,5 @@
|
||||
NAME
|
||||
agd - inverse gudermannian function
|
||||
agd - inverse Gudermannian function
|
||||
|
||||
SYNOPSIS
|
||||
agd(z [,eps])
|
||||
@@ -11,7 +11,7 @@ TYPES
|
||||
return number or infinite error value
|
||||
|
||||
DESCRIPTION
|
||||
Calculate the inverse gudermannian of z to a nultiple of eps with
|
||||
Calculate the inverse Gudermannian of z to a multiple of eps with
|
||||
errors in real and imaginary parts less in absolute value than .75 * eps,
|
||||
or an error value if z is very close to one of the one of the branch
|
||||
points of agd(z)..
|
||||
|
@@ -56,7 +56,7 @@
|
||||
ptest(a,1,0)
|
||||
|
||||
Normally ptest performs a some checks to determine if the
|
||||
value is divisable by some trivial prime. If the 2nd
|
||||
value is divisible by some trivial prime. If the 2nd
|
||||
argument is < 0, then the trivial check is omitted.
|
||||
|
||||
For example, ptest(a,10) performs the same work as:
|
||||
|
@@ -20,7 +20,7 @@ DESCRIPTION
|
||||
combinatorial problems, e.g. for n >= 1, catalan(n) is the number of
|
||||
ways of using parentheses to express a product of n + 1 letters in
|
||||
terms of binary products; it is the number of ways of dissecting a
|
||||
convex polygon with n + 2 sides into triangles by nonintersecting
|
||||
convex polygon with n + 2 sides into triangles by non-intersecting
|
||||
diagonals; it is the number of integer-component-incrementing paths
|
||||
from (x,y) = (0,0) to (x,y) = (n,n) for which always y <= x.
|
||||
|
||||
|
@@ -30,7 +30,7 @@ DESCRIPTION
|
||||
This corresponds to the use of rnd for functions like round(x, n, rnd).
|
||||
|
||||
If bit 3 or 4 of rnd is set, the lower order bits are ignored; bit 3
|
||||
is ignored if bit 4 is set. Thusi, for rnd > 3, it sufficient to
|
||||
is ignored if bit 4 is set. Thus, for rnd > 3, it sufficient to
|
||||
consider the two cases rnd = 8 and rnd = 16.
|
||||
|
||||
If den(x) > 2, cfsim(x, 8) returns the value of the penultimate simple
|
||||
|
2
help/cmp
2
help/cmp
@@ -47,7 +47,7 @@ DESCRIPTION
|
||||
obj point {x,y};
|
||||
|
||||
if points with real components are to be partially ordered by their
|
||||
euclidean distance from the origin, an appropriate point_rel
|
||||
Euclidean distance from the origin, an appropriate point_rel
|
||||
function may be that given by
|
||||
|
||||
define point_rel(a,b) = sgn(a.x^2 + a.y^2 - b.x^2 - b.y^2);
|
||||
|
26
help/command
26
help/command
@@ -200,7 +200,7 @@ Command sequence
|
||||
cd
|
||||
cd dir
|
||||
|
||||
Change the current directory to 'dir'. If 'dir' is ommitted,
|
||||
Change the current directory to 'dir'. If 'dir' is omitted,
|
||||
change the current directory to the home directory, if $HOME
|
||||
is set in the environment.
|
||||
|
||||
@@ -286,10 +286,10 @@ Command sequence
|
||||
|
||||
q() defined
|
||||
a() defined
|
||||
start statment #1
|
||||
start statement #1
|
||||
quit from q()
|
||||
after statment #1
|
||||
start statment #2
|
||||
after statement #1
|
||||
start statement #2
|
||||
abort from a()
|
||||
|
||||
The QUIT within the q() function prevented the ``end of q()''
|
||||
@@ -309,10 +309,10 @@ Command sequence
|
||||
|
||||
q() defined
|
||||
a() defined
|
||||
start statment #1
|
||||
start statement #1
|
||||
quit from q()
|
||||
after statment #1
|
||||
start statment #2
|
||||
after statement #1
|
||||
start statement #2
|
||||
abort from a()
|
||||
; <==== calc interactive prompt
|
||||
|
||||
@@ -330,10 +330,10 @@ Command sequence
|
||||
|
||||
q() defined
|
||||
a() defined
|
||||
start statment #1
|
||||
start statement #1
|
||||
quit from q()
|
||||
after statment #1
|
||||
start statment #2
|
||||
after statement #1
|
||||
start statement #2
|
||||
abort from a()
|
||||
|
||||
The ABORT inside function a() halts the processing of statements
|
||||
@@ -352,11 +352,11 @@ Command sequence
|
||||
a() defined
|
||||
; x = 3;
|
||||
; {print "start #1"; if (x > 1) q()} print "after #1";
|
||||
start statment #1
|
||||
start statement #1
|
||||
quit from q()
|
||||
after statment #1
|
||||
after statement #1
|
||||
; {print "start #2"; if (x > 1) a()} print "after #2";
|
||||
start statment #2
|
||||
start statement #2
|
||||
abort from a()
|
||||
; {print "start #3"; if (x > 1) quit "quit from 3rd statement"}
|
||||
start #3
|
||||
|
@@ -25,7 +25,7 @@ DESCRIPTION
|
||||
|
||||
"trace" turns tracing features on or off
|
||||
"display" sets number of digits in prints.
|
||||
"epsilon" sets error value for transcendentals.
|
||||
"epsilon" sets error value for transcendental.
|
||||
"maxprint" sets maximum number of elements printed.
|
||||
"mode" sets printout mode.
|
||||
"mode2" sets 2nd base printout mode.
|
||||
|
@@ -52,7 +52,7 @@ DESCRIPTION
|
||||
|
||||
In the definition of a function, the builtin function param(n)
|
||||
provides a way of referring to the parameters. If n (which may
|
||||
result from evaluating an expreession) is zero, it returns the number
|
||||
result from evaluating an expression) is zero, it returns the number
|
||||
of arguments in a call to the function, and if 1 <= n <= param(0),
|
||||
param(n) refers to the parameter with index n.
|
||||
|
||||
@@ -63,7 +63,7 @@ DESCRIPTION
|
||||
|
||||
In the statement form, if a return statement is encountered,
|
||||
the "return" keyword is to be either immediately followed by an
|
||||
expression or by a statement terminator (semicolon or rightbrace);
|
||||
expression or by a statement terminator (semicolon or right-brace);
|
||||
in the former case, the expression is evaluated, evaluation of
|
||||
the function ceases, and the value obtained for the expression is
|
||||
returned as the "value of the function"; in the no-expression case,
|
||||
@@ -93,7 +93,7 @@ DESCRIPTION
|
||||
definition has no effect on the new definition, but if the definition
|
||||
is completed successfully, the new definition replaces the old one;
|
||||
otherwise the old definition is retained. The number of parameters
|
||||
and their names in the new definiton may be quite different from
|
||||
and their names in the new definition may be quite different from
|
||||
those in the old definition.
|
||||
|
||||
An attempt at a definition may fail because of scanerrors as the
|
||||
|
@@ -25,7 +25,7 @@ DESCRIPTION
|
||||
|
||||
digits(12.3456) == 2 computes with the integer part only
|
||||
digits(-1234) == 4 computes with the absolute value only
|
||||
digits(0) == 1 specical case
|
||||
digits(0) == 1 special case
|
||||
digits(-0.123) == 1 combination of all of the above
|
||||
|
||||
EXAMPLE
|
||||
|
@@ -22,7 +22,7 @@ DESCRIPTION
|
||||
or is not an octal digit, and other non-text characters to their
|
||||
escaped hex representation, e.g. char(165) becomes \xa5.
|
||||
|
||||
For real x, estr(x) represebts x in fractional mode.
|
||||
For real x, estr(x) represents x in fractional mode.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
|
@@ -21,7 +21,7 @@ DESCRIPTION
|
||||
If euler(k) is called with negative k, zero is returned and the
|
||||
memory used by the table iu freed.
|
||||
|
||||
Considerable runtime and memery are required for calculating
|
||||
Considerable runtime and memory are required for calculating
|
||||
euler(n) for large even n.
|
||||
|
||||
EXAMPLE
|
||||
|
@@ -16,7 +16,7 @@ DESCRIPTION
|
||||
null value is returned. Otherwise the function returns the empty
|
||||
string "" if the first non-white character is '\0', and in other cases,
|
||||
the string formed by the non-white-space characters read until '\0' or
|
||||
a white-space character or te end of the file is reached. In the
|
||||
a white-space character or the end of the file is reached. In the
|
||||
cases where the reading is stopped by '\0' or white-space character,
|
||||
the file position will be that immediately after that character.
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
NAME
|
||||
freopen - close (if necessary) and reopen a filestream
|
||||
freopen - close (if necessary) and reopen a file stream
|
||||
|
||||
SYNOPSIS
|
||||
freopen(fs, mode [,filename])
|
||||
|
4
help/gd
4
help/gd
@@ -1,5 +1,5 @@
|
||||
NAME
|
||||
gd - gudermannian function
|
||||
gd - Gudermannian function
|
||||
|
||||
SYNOPSIS
|
||||
gd(z [,eps])
|
||||
@@ -11,7 +11,7 @@ TYPES
|
||||
return number or "Log of zero or infinity" error value
|
||||
|
||||
DESCRIPTION
|
||||
Calculate the gudermannian of z to a nultiple of eps with errors in
|
||||
Calculate the Gudermannian of z to a multiple of eps with errors in
|
||||
real and imaginary parts less in absolute value than .75 * eps,
|
||||
or return an error value if z is close to one of the branch points
|
||||
at odd multiples of (pi/2) * i.
|
||||
|
@@ -14,7 +14,7 @@ DESCRIPTION
|
||||
eval(S) for some expression S which evaluates to a string. It
|
||||
decreases by 1 when a file being read reaches EOF or a string
|
||||
being eval-ed reaches '\0', or earlier if a quit statement is
|
||||
encountered at top calculation-level in the flle or string. It
|
||||
encountered at top calculation-level in the file or string. It
|
||||
decreases to zero if an abort statement is encountered at any
|
||||
function-level in the file or string. If a quit or abort
|
||||
statement is encountered at top calculation-level at top input-level,
|
||||
|
@@ -1,5 +1,5 @@
|
||||
NAME
|
||||
isatty - returns 1 if fd assocatied with a tty
|
||||
isatty - returns 1 if fd is associated with a tty
|
||||
|
||||
SYNOPSIS
|
||||
isatty(fd)
|
||||
|
@@ -18,7 +18,7 @@ DESCRIPTION
|
||||
3 if x is a string-pointer
|
||||
4 if x is a number-pointer
|
||||
|
||||
Pointers are initially defined by using the addreess (&) operator
|
||||
Pointers are initially defined by using the address (&) operator
|
||||
with an "addressable" value; currently, these are octets, lvalues,
|
||||
strings and real numbers.
|
||||
|
||||
|
@@ -184,7 +184,7 @@ DESCRIPTION
|
||||
The above calc pseudo code is provided to help illustrate the
|
||||
properties of the jacobi symbol only. The use of calc's jacobi
|
||||
builtin is recommended for both speed as well as to handle
|
||||
specical cases.
|
||||
special cases.
|
||||
|
||||
For more information on the Legendre symbol and the Jacobi symbol:
|
||||
|
||||
|
8
help/max
8
help/max
@@ -12,7 +12,7 @@ TYPES
|
||||
DESCRIPTION
|
||||
If an argument x_i is a list with elements e_1, e_2, ..., e_n, it
|
||||
is treated as if x_i were replaced by e_1, e_2, ..., e_n; this may
|
||||
continue recurively if any of the e_j is a list.
|
||||
continue recursively if any of the e_j is a list.
|
||||
|
||||
If an argument x_i is an object of type xx, then x_i is replaced by
|
||||
xx_max(x_i) if the function xx_max() has been defined. If the
|
||||
@@ -29,14 +29,14 @@ DESCRIPTION
|
||||
will return the same as max(a, b, c).
|
||||
|
||||
Assuming the above replacements, and that the x_1, x_2, ..., are
|
||||
of sufficently simple ordered types (e.g. real numbers or strings),
|
||||
of sufficiently simple ordered types (e.g. real numbers or strings),
|
||||
or, if some are objects, the relevant xx_rel(a,b) has been defined
|
||||
and returns a real-number value for any comparison that has to be made,
|
||||
max(x_1, x_2, ...) returns the value determined by max(x_1) = x_1,
|
||||
and succesively for later arguments, by the use of the equivalent of
|
||||
and successively for later arguments, by the use of the equivalent of
|
||||
max(a,b) = (a < b) ? b : a. If the ordering determined by < is total,
|
||||
max(x_1, ...) will be the maximum value among the arguments. For a
|
||||
preorder relation it may be one of several maximal values. For
|
||||
pre-order relation it may be one of several maximal values. For
|
||||
other relations, it may be difficult to predict the result.
|
||||
|
||||
EXAMPLE
|
||||
|
@@ -12,13 +12,13 @@ TYPES
|
||||
DESCRIPTION
|
||||
This is analogous to the C operator sizeof. It attempts to assess
|
||||
the number of bytes in memory used to store a value and all its
|
||||
components plus all of the related structue overhead. Unlike
|
||||
components plus all of the related structure overhead. Unlike
|
||||
sizeof(x), this builtin includes overhead.
|
||||
|
||||
Unlike size(x), this builtin incldues the trailing \0 byte on the
|
||||
Unlike size(x), this builtin includes the trailing \0 byte on the
|
||||
end of strings.
|
||||
|
||||
Unlike sizeof(x), this builtin includes the size demonitor for integers
|
||||
Unlike sizeof(x), this builtin includes the size denominator for integers
|
||||
and the imaginary part for complex values. Storage for holding
|
||||
0, 1 and -1 values are also included.
|
||||
|
||||
|
2
help/meq
2
help/meq
@@ -1,5 +1,5 @@
|
||||
NAME
|
||||
meq - test for equality modulo a specifed number
|
||||
meq - test for equality modulo a specified number
|
||||
|
||||
SYNOPSIS
|
||||
meq(x, y, md)
|
||||
|
8
help/min
8
help/min
@@ -12,7 +12,7 @@ TYPES
|
||||
DESCRIPTION
|
||||
If an argument x_i is a list with elements e_1, e_2, ..., e_n, it
|
||||
is treated as if x_i were replaced by e_1, e_2, ..., e_n; this may
|
||||
continue recurively if any of the e_j is a list.
|
||||
continue recursively if any of the e_j is a list.
|
||||
|
||||
If an argument x_i is an object of type xx, then x_i is replaced by
|
||||
xx_min(x_i) if the function xx_min() has been defined. If the
|
||||
@@ -29,14 +29,14 @@ DESCRIPTION
|
||||
will return the same as min(a, b, c).
|
||||
|
||||
Assuming the above replacements, and that the x_1, x_2, ..., are
|
||||
of sufficently simple ordered types (e.g. real numbers or strings),
|
||||
of sufficiently simple ordered types (e.g. real numbers or strings),
|
||||
or, if some are objects, the relevant xx_rel(a,b) has been defined
|
||||
and returns a real-number value for any comparison that has to be made,
|
||||
min(x_1, x_2, ...) returns the value determined by min(x_1) = x_1,
|
||||
and succesively for later arguments, by the use of the equivalent of
|
||||
and successively for later arguments, by the use of the equivalent of
|
||||
min(a,b) = (a < b) ? a : b. If the ordering determined by < is total,
|
||||
min(x_1, ...) will be the minimum value among the arguments. For a
|
||||
preorder relation it may be one of several minimal values. For other
|
||||
pre-order relation it may be one of several minimal values. For other
|
||||
relations, it may be difficult to predict the result.
|
||||
|
||||
EXAMPLE
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user