mirror of
https://github.com/lcn2/calc.git
synced 2025-08-19 01:13:27 +03:00
Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
7f125396c1 | ||
|
7cf611bca8 | ||
|
c9fce6a5bb | ||
|
a1c96f95a6 | ||
|
5e6b3cbd3f | ||
|
5bada5fefd | ||
|
0c20c96a7e | ||
|
e054ea87f2 | ||
|
e229393250 | ||
|
a407c7d197 | ||
|
9ea569152a | ||
|
cbcb5801fb | ||
|
bdf495150e | ||
|
b3648f030f | ||
|
71e88bdc91 | ||
|
ca0dd4560b |
41
BUGS
41
BUGS
@@ -74,9 +74,17 @@ Known bugs:
|
||||
|
||||
=-=
|
||||
|
||||
Problems that have known work-a-rounds:
|
||||
|
||||
* There is a bug in gcc v4.1.0 that causes calc to fail the regression
|
||||
test. The work-a-round is to compile with gcc v4.1.1 or later. This
|
||||
problems was observed on Fedora 5.
|
||||
|
||||
=-=
|
||||
|
||||
mis-features in calc:
|
||||
|
||||
Some problems are not bugs but rarther mis-features / things that could
|
||||
Some problems are not bugs but rather mis-features / things that could
|
||||
work better. The following is a list of mis-features that should be
|
||||
addressed and improved someday.
|
||||
|
||||
@@ -121,30 +129,7 @@ mis-features in calc:
|
||||
|
||||
will not.
|
||||
|
||||
=-=
|
||||
|
||||
Problems with old systems that have known work-a-rounds:
|
||||
|
||||
* There is a bug in gcc-2.95 that causes calc, when compiled with -O2,
|
||||
to fail the regression test. The work-a-round is to compile with -O
|
||||
or to use gcc-2.96 or later.
|
||||
|
||||
* There are problems compiling calc on the sparcv9 under 64 bit
|
||||
Solaris. On that platform, gcc-2.96 is able to compile calc, but
|
||||
calc dumps core very early on in startup. It is said that sparcv9
|
||||
support in gcc-2.96 is very unofficial and thus there is no
|
||||
work-a-round for gcc-2-96.
|
||||
|
||||
There is a work-a-round for this architecture us one is using the
|
||||
Solaris CC on the sparcv9. It has been reported that setting the
|
||||
following Makefile variables will produce a working version of
|
||||
calc on the sparcv9 under 64 bit Solaris:
|
||||
|
||||
LCC="cc -xarch=v9"
|
||||
CCWARN="-DFORCE_STDC -w"
|
||||
DEBUG="-fast -xarch=v9"
|
||||
|
||||
## Copyright (C) 1999-2006 Landon Curt Noll
|
||||
## Copyright (C) 1999-2013 Landon Curt Noll
|
||||
##
|
||||
## Calc is open software; you can redistribute it and/or modify it under
|
||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
||||
@@ -158,10 +143,10 @@ Problems with old systems that have known work-a-rounds:
|
||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.26 $
|
||||
## @(#) $Id: BUGS,v 29.26 2007/01/03 21:26:22 chongo Exp $
|
||||
## @(#) $Revision: 30.2 $
|
||||
## @(#) $Id: BUGS,v 30.2 2013/08/11 01:09:27 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/BUGS,v $
|
||||
##
|
||||
## Under source code control: 1994/03/18 14:06:13
|
||||
|
479
CHANGES
479
CHANGES
@@ -1,4 +1,283 @@
|
||||
The following are the changes from calc version 2.12.1.10 to date:
|
||||
The following are the changes from calc version 2.12.4.6 to date:
|
||||
|
||||
Updated RPM build process to remove use of deprecated flags.
|
||||
|
||||
Applied a number of fixes to calc.spec and rpm.mk file.
|
||||
See calc.spec.in for details. Changed rpm release to 2.1.
|
||||
|
||||
Set MACOSX_DEPLOYMENT_TARGET=10.8 as we upgraded all of
|
||||
our development Mac OS X to 10.8.
|
||||
|
||||
Libraries are chmodded as 0644 to allow for building rpms
|
||||
without root.
|
||||
|
||||
Silenced annoying warning about unused variable 'intp'
|
||||
while compiline endian.c under some circumstances.
|
||||
|
||||
Fixed typo in redeclaration warnings. Thanks to
|
||||
Christoph Zurnieden <czurnieden at gmx dot de> for this report.
|
||||
|
||||
Added a number of calc resource functions by
|
||||
Christoph Zurnieden <czurnieden at gmx dot de> including:
|
||||
|
||||
bernpoly.cal - Computes the nth Bernoulli polynomial at z for any n,z
|
||||
brentsolve.cal - root-finder implementwed with the Brent-Dekker trick
|
||||
factorial.cal - product of the positive integers
|
||||
factorial2.cal - variety of integer functions quasi-related to factoral
|
||||
lambertw.cal - Computes Lambert's W-function at "z" at branch "branch"
|
||||
lnseries.cal - Calculates a series of natural logarithms at 1,2,3,4...n
|
||||
specialfunctions.cal - Calculates the value of the beta function
|
||||
statistics.cal - a wide vareity of stastical functions
|
||||
toomcook.cal - Multiply by way of the Toom-Cook algorithm
|
||||
zeta2.cal - Calculate the value of the Hurwitz Zeta function
|
||||
|
||||
Improved the formatting of the output from:
|
||||
|
||||
help resource
|
||||
|
||||
Cleaned up old DOS-like CRLF line terminators in some
|
||||
help files. Thanks goes to to Michael Somos
|
||||
<somos at harary dot math dot georgetown dot edu>
|
||||
for pointing this out.
|
||||
|
||||
We replaced COPYING-LGPL with the version that is found at
|
||||
http://www.gnu.org/licenses/lgpl-2.1.txt because that version
|
||||
contans some whitespace formatting cleanup. Otherwise the
|
||||
license is the same.
|
||||
|
||||
We fixed a number of places where "the the" was used
|
||||
when just "the" should be used.
|
||||
|
||||
NOTE: Fixes to grammar, spelling and minor formatting
|
||||
problems are welcome. Please send us your patches!
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.4.3 to 2.12.4.5:
|
||||
|
||||
Added gvec.cal resource script.
|
||||
|
||||
Added calc-symlink make rule to setup symlinks from stardard locations
|
||||
into a tree specified by a non-empty ${T} makefile variable. Added
|
||||
calc-unsymlink to remove any symlinks that may have been created by
|
||||
the calc-symlink rule.
|
||||
|
||||
If is OK for the calc-symlink make rule to pre-remove a symlink.
|
||||
|
||||
Fixed bug was uncovered in calc that caused script failures when calc
|
||||
is called within a while loop in BASH if the while loop is fed from
|
||||
stdin due to calc's redirection/inheritance of stdin and no option
|
||||
to change this behavior. Thanks gores to David C. Rankin
|
||||
<drankinatty at gmail dot com> for the bug fix and to David Haller
|
||||
<dnh at opensuse dot org> for helping debug this problem.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.4.0 to 2.12.4.2:
|
||||
|
||||
Fixed a documentation bug for the sgn() builtin.
|
||||
|
||||
Added the 1<<8/2 evaluation example to "help unexpected". That
|
||||
expression evalutes to 128, not 16 as some C programmers might expect.
|
||||
|
||||
Fixed a bug in solve.cal where high was not returned in some situations.
|
||||
|
||||
Fixed a bug reported by Paul & Karen Tomlinson (paulnkaz at pktomlinson
|
||||
dot fsnet dot co dot uk) where calling log multiple times with different
|
||||
values of epsilon resulted in an incorrect value.
|
||||
|
||||
Removed cvd rule from Makefiles.
|
||||
|
||||
The Makefile used in the source rpm (calc-*.src.rpm) no longer uses
|
||||
the -Werror compile flag. This is to help those distributions with
|
||||
compilers that make produce (hopefully) complination warnings.
|
||||
NOTE: For testing and calc build purposes will recommend and will
|
||||
continue to use the -Werror flag.
|
||||
|
||||
Fixed a typo in the Makefile where the make variable ${SAMPLE_OBJ}
|
||||
was misspelled as ${SAMPLE_OBJS}.
|
||||
|
||||
Added prep makefile rule to make is easier to compile calc without
|
||||
an optimizer. By doing:
|
||||
|
||||
make clobber prep
|
||||
|
||||
one may build a calc binary that is easier to debug.
|
||||
|
||||
Fixed a bug where an certains typos (e.g., calling an unknown
|
||||
function) would previously cause calc to exit.
|
||||
|
||||
Updated the COPYING file to reflect the new filenames associated
|
||||
with the SHA1 hash function, and removed mention of files related
|
||||
to the SHA (SHA0, not SHA1) and the MD5 hash functions (which is
|
||||
no longer supported in calc).
|
||||
|
||||
Fixed a bug where a calling vsnprintf() twice created problems.
|
||||
The thanks for this fix goes to Matthew Miller (mattdm at mattdm
|
||||
dot org) for this patch.
|
||||
|
||||
Michael Penk (mpenk at wuska dot com) reported success in installs
|
||||
under windoz via Cygwin by making a change to the Cygwin target.
|
||||
These changes have been folded into the main calc Makefile.
|
||||
The old recommendation of using 'make win32_hsrc' is no longer
|
||||
required for Cygwin. See the README.WINDOWS file for details.
|
||||
|
||||
Added dms.cal and hms.cal resource files. The dms.cal is a more
|
||||
functional version of deg.cal. It is a superset except that increment
|
||||
and decrement is on the arc second level. The hms.cal is for
|
||||
24-hour cycle instread of the 360 degree cycle of dms.cal.
|
||||
|
||||
Changed deg.cal object name from dms to deg so that the more functional
|
||||
dms.cal can own the dms object name.
|
||||
|
||||
Updated 'help obj' to reflect changes to 'show objfunctions' and
|
||||
resource file example list since 1999.
|
||||
|
||||
Fixed problem where CALC_BYTE_ORDER refering to CALC_BIG_ENDIAN
|
||||
and CALC_LITTLE_ENDIAN instead of BIG_ENDIAN and LITTLE_ENDIAN.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.3.0 to 2.12.3.3:
|
||||
|
||||
Fixed the Jacobi function where it returned 1 when it should have
|
||||
returned 0. Thanks goes to Kevin Sopp (baraclese at googlemail dot com)
|
||||
for discovering the problem and suggesting the nature if the fix.
|
||||
|
||||
Calc versions will always be of the form x.y.z.w even when the
|
||||
MINOR_PATCH (w) is 0. Thus, 2.12.3.0 will be printed as 2.12.3.0
|
||||
instread of just 2.12.3.
|
||||
|
||||
Added MINGW32_NT-5.0 compile target based on a patch from
|
||||
Brian L. Angus (angus at eng dot utah dot edu).
|
||||
|
||||
Removed the use of rpm.release in the Makefile.
|
||||
|
||||
Mac OS Darwin targets no longer attempt to use ldconfig. Under the
|
||||
Darwin target, the LDCONFIG make variable is redefined to be
|
||||
an empty value. Thanks goes to Ralf Trinler (art at infra dot de)
|
||||
for reporting this problem.
|
||||
|
||||
The ${CALC_INCDIR}/custom is no longer being removed at install time
|
||||
if it is empty. Now when ${ALLOW_CUSTOM} make variable is empty,
|
||||
an empty ${CALC_INCDIR}/custom may be left hehind.
|
||||
|
||||
Fixed a problem where a "make clobber" would remove custom/Makefile
|
||||
and fail to rebuilt it.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.2.3 to 2.12.2.4:
|
||||
|
||||
Added OpenBSD target.
|
||||
|
||||
Using the -r test instead of the -e test in Makefiles because some
|
||||
out of date shells still do not have the -e test.
|
||||
|
||||
The Makefile now avoids the use of if ! command because some out of
|
||||
date shells to not support the ! construct.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.1.1 to 2.12.2.2:
|
||||
|
||||
Added an explicit Solaris target.
|
||||
|
||||
Fixed confusion in Makefile where some uses of ${EXT} were misnamed ${EXE}.
|
||||
|
||||
Added a "make strip" rule, per suggestion from Igor Furlan <primorec
|
||||
at sbcglobal dot net>, to allow one to strip previously built binary
|
||||
executables and libraries.
|
||||
|
||||
Under the Darwin / OS X target, ${DARWIN_ARCH} is left empty meaning
|
||||
that calc is compiled for the native CPU type instead of Universal
|
||||
Binary (Intel and PPC).
|
||||
|
||||
By default, the calc binary that is built for the rpm forces
|
||||
${LD_SHARE} to be empty. An empty ${LD_SHARE} means that the calc
|
||||
from the rpm does not set rpath. This in turn causes the default
|
||||
system path to be searched when looking for libcalc and libcustcalc.
|
||||
|
||||
The Makefile shipped with calc still sets ${LD_SHARE} for host targets.
|
||||
By default, the dynamic shared library search path for all targets
|
||||
starts with the source directory. Starting the search in the source
|
||||
directory is convenient for testing and debugging but is not appropriate
|
||||
for installation on a production system. To get the same effect
|
||||
as the calc binary in the calc rpm, try:
|
||||
|
||||
make clobber
|
||||
make calc-dynamic-only BLD_TYPE=calc-dynamic-only LD_SHARE=
|
||||
make install
|
||||
|
||||
The libcalc and libcustcalc shared libraries are now tied to
|
||||
the 4 level calc version instead of just 3 levels. For example,
|
||||
under Linux calc version 2.12.2.1 uses /usr/lib/libcalc.so.2.12.2.1
|
||||
instead of just the /usr/lib/libcalc.so.2.12.2 file. This change
|
||||
was made so that calc produced by 'make clobber; make all install'
|
||||
is consistent with the calc rpm.
|
||||
|
||||
Calc is now releasing the calc-debuginfo rpm for those RPM users who
|
||||
which to use non-stripped libraries and binaries for debugging
|
||||
purposes. By default, the calc rpm installed stripped binaries
|
||||
and libraries.
|
||||
|
||||
Added this high priority item to the calc help/todo list:
|
||||
|
||||
It is overkill to have nearly everything wind up in libcalc.
|
||||
Form a libcalcmath and a libcalclang so that an application
|
||||
that just wants to link with the calc math libs can use them
|
||||
without dragging in all of the other calc language, I/O,
|
||||
and builtin functions.
|
||||
|
||||
Fixed the wording for the -i flag in the calc man page.
|
||||
|
||||
Added some notes to the help/unexpected file regarding calc
|
||||
and interactice shells.
|
||||
|
||||
Fixed bug where a FILEPOS was copied FPOS_POS_BITS octets instead of
|
||||
FPOS_POS_LEN octets.
|
||||
|
||||
Split out ${READLINE_EXTRAS} Makefile variables from ${READLINE_LIB}
|
||||
to better deal with Fedora rpm requirements.
|
||||
|
||||
Bit 8 (0x80) of calc_debug is reserved for custom debugging.
|
||||
See help/config and custom/HOW_TO_ADD for details.
|
||||
|
||||
When the Makefile variable ${ALLOW_CUSTOM} is not defined or empty,
|
||||
the libcustcalc library is not built or linked against, certain make
|
||||
rules skip going into the custom sub-directory, the install
|
||||
rule skips certain custom installation actions, and the common
|
||||
C flags (${COMMON_CFLAGS}) is given -UCUSTOM. Other make rules such
|
||||
as "make clean" and "make clobber" still work as before. Also
|
||||
the Makefile.simple assumes that the Makefile variable ${ALLOW_CUSTOM}
|
||||
is -DCUSTOM.
|
||||
|
||||
Clarified that the calc builtin functions rand() and random()
|
||||
operate over a half closed interval. The help/rand and help/random
|
||||
refer to the top of the interval as "beyond" instead of "max".
|
||||
|
||||
Releaseing source tar balls using bzip2 instead of with gzip. So
|
||||
what was calc-something.tar.gz is now calc-something.tar.bz2.
|
||||
To "uncompress" use:
|
||||
|
||||
bunzip2 calc-something.tar.bz2
|
||||
|
||||
On some systems, one may untar directly by:
|
||||
|
||||
tar -jxvf calc-something.tar.bz2
|
||||
|
||||
The Makefile variable ${BYTE_ORDER} was replaced by ${CALC_BYTE_ORDER}.
|
||||
|
||||
Changed the way the Makefile can force the calc byte order. If you set
|
||||
the Makefile variable ${CALC_BYTE_ORDER} to be -DCALC_BIG_ENDIAN then
|
||||
endian.h will force the CPP symbol CALC_BYTE_ORDER to be BIG_ENDIAN.
|
||||
If you set ${CALC_BYTE_ORDER} to be -DCALC_LITTLE_ENDIAN then endian.h
|
||||
will force the CPP symbol CALC_BYTE_ORDER to be LITTLE_ENDIAN.
|
||||
If the Makefile variable ${CALC_BYTE_ORDER} is empty, then the CPP
|
||||
symbol CALC_BYTE_ORDER will set to the CPP symbol BYTE_ORDER as
|
||||
defined by some system include file (if the Makefile can find such
|
||||
an include file), or the Makefile compiling endian.c and hopefully
|
||||
using that result to set CPP symbol CALC_BYTE_ORDER. Regardless of
|
||||
how it happens, the CPP symbol CALC_BYTE_ORDER should end up set in
|
||||
endian_calc.h include file.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.1.10 to 2.12.2:
|
||||
|
||||
Put back the missing -s flags on the cscripts: mersenne, 4dsphere,
|
||||
fprodcut, plus, and powerterm. Thanks goes to Bradley Reed
|
||||
@@ -10,12 +289,10 @@ The following are the changes from calc version 2.12.1.10 to date:
|
||||
All extern functions are now declared with the symbol E_FUNC.
|
||||
The include file decl.h defines these 4 symbols by default
|
||||
to static, extern, static, and extern respectively. Under
|
||||
Windoz, DLL is also defined accorind to the _EXPORTING symbol
|
||||
Windoz, DLL is also defined according to the _EXPORTING symbol
|
||||
and is prepended to the EXTERN and E_FUNC symbols. The decl.h
|
||||
file has replaced the win32dll.h file.
|
||||
|
||||
Added Apple Mac OS X compiler set in the Makefile.
|
||||
|
||||
When WITH_TLS is defined, calc attempts to compile with Thread Local
|
||||
Storage. As of version 2.12.1.12 this mode is extremely experimental.
|
||||
Calc may not compile when WITH_TLS defined.
|
||||
@@ -29,10 +306,6 @@ The following are the changes from calc version 2.12.1.10 to date:
|
||||
and contains an forced error saying that stdlib.h should be used
|
||||
instead. The Makefile symbol HAVE_MALLOC has been removed.
|
||||
|
||||
Fixed FreeBSD dereferencing type-punned pointer error in filepos2z().
|
||||
|
||||
Removed SGI IRIX from the compiler section.
|
||||
|
||||
Moved the sample code in the sample sub-directory up into the
|
||||
main source level. The sample/many_random.c source file is
|
||||
now sample_many.c. The sample/test_random.c source file is now
|
||||
@@ -94,6 +367,165 @@ The following are the changes from calc version 2.12.1.10 to date:
|
||||
string.h, and win32dll.h from ${INCDIR} if they exist. These calc
|
||||
include files are no longer supported.
|
||||
|
||||
Do reduce the number of special case .o build rules, the
|
||||
${ALLOW_CUSTOM} make flag is added to ${CFLAGS} by default. This means
|
||||
that if ALLOW_CUSTOM= -DCUSTOM, then -DCUSTOM is given to the compile
|
||||
line of most .c files.
|
||||
|
||||
Calc -v reports "w/custom functions" or "w/o custom functions" on
|
||||
the version string depending on if calc was compiled with the
|
||||
ALLOW_CUSTOM= -DCUSTOM or not.
|
||||
|
||||
Replaced the concept of compiler sets in the Makefile with
|
||||
host target section in the Makefile. Initial host targets are:
|
||||
|
||||
Linux
|
||||
Darwin
|
||||
FreeBSD
|
||||
(default) <<== Target does not match any previous target name
|
||||
Simple
|
||||
|
||||
NOTE: If your target is not supported below and the default target
|
||||
is not suitable for your needs, please send to the:
|
||||
|
||||
calc-contrib at asthe dot com
|
||||
|
||||
EMail address an "ifeq ($(target),YOUR_TARGET_NAME)"
|
||||
... "endif" set of lines from the Makefile so that
|
||||
we can consider them for the next release.
|
||||
|
||||
The custom/Makefile is now constructed from 3 parts: custom/Makefile.head,
|
||||
the host target section in Makefile, and the custom/Makefile.tail.
|
||||
|
||||
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 sufficient. On FreeBSD for example, one must
|
||||
use gmake instead of make.
|
||||
|
||||
If your target system does not have GNU Make (or equivalent), then
|
||||
you should try using the Makefile.simple and custom/Makefile.simple
|
||||
files:
|
||||
|
||||
mv Makefile Makefile.gmake
|
||||
cp Makefile.simple Makefile
|
||||
mv custom/Makefile custom/Makefile.gmake
|
||||
cp custom/Makefile.simple custom/Makefile
|
||||
make all
|
||||
|
||||
Added the ability to build calc with dynamic libraries, static
|
||||
libraries or both. Many thanks goes to Matthew Miller (mattdm
|
||||
at mattdm dot org) and Mirko Viviani (mirko at objectlab dot
|
||||
org) for this help, encouragement, and testing of this major change!
|
||||
|
||||
Added BLD_TYPE Makefile variable to control how calc is
|
||||
built. The BLD_TYPE value may be one of:
|
||||
|
||||
BLD_TYPE= calc-dynamic-only
|
||||
BLD_TYPE= calc-static-only
|
||||
|
||||
Each host target establishes a default BLD_TYPE value. Of course
|
||||
one can override the host target BLD_TYPE on the make command line:
|
||||
|
||||
make clobber
|
||||
make calc-dynamic-only BLD_TYPE=calc-dynamic-only
|
||||
|
||||
make clobber
|
||||
make calc-static-only BLD_TYPE=calc-static-only
|
||||
|
||||
NOTE: It is a very good idea to first clobber (remove) any previously
|
||||
built .o, libs and executables before switching the build
|
||||
between static and dynamic.
|
||||
|
||||
which have the same effect as make all with a given build phase set.
|
||||
|
||||
For Linux and Darwin, the default BLD_TYPE is calc-dynamic-only.
|
||||
For the simple case, BLD_TYPE is calc-static-only. For the
|
||||
default target (the target does not match any of the previous
|
||||
defined targets), BLD_TYPE is calc-static-only.
|
||||
|
||||
Added ${CSFLAGS} make variable to hold the {$CC} flags for compiling
|
||||
without shared library. By default, ${CFLAGS} is ${CSFLAGS} with
|
||||
${CC_SHARE} added to it.
|
||||
|
||||
Added ${CC_SHARE}, ${LIBCALC_SHLIB}, ${LIBCUSTCALC_SHLIB}, and
|
||||
${LD_SHARE} to the remaining compiler sets.
|
||||
|
||||
Fixed make depend and make uninstall rules. Performed various
|
||||
makefile syntax cleanups.
|
||||
|
||||
Removed ${PROGS} and ${STATIC_PROGS} Makefile variables due to
|
||||
the new BLD_TYPE system (see above).
|
||||
|
||||
Added missing help for cp, calcpath, and stoponerror.
|
||||
|
||||
Noted that calc fails the regression test (and will crash at
|
||||
various times) when compiled with gcc v4.1.0. This problem was
|
||||
first reported under Fedora Core 5 by Christian Siebert.
|
||||
|
||||
Set the LESSCHARSET to iso8859 so that less will not confuse or
|
||||
upset the col utility with Invalid or incomplete multi-byte or wide
|
||||
characters.
|
||||
|
||||
Updated the Free Software Foundation postal address and updated
|
||||
the COPYING-LGPL from http://www.fsf.org/licensing/licenses/lgpl.txt
|
||||
on 2007-Mar-14. Calc is using the same Version 2.1 of the LGPL,
|
||||
only the postal address of the Free Software Foundation has
|
||||
been updated. All source files were updated to RCS level 30.
|
||||
Thanks goes to Martin Buck (m at rtin-buck dor de) for this patch.
|
||||
|
||||
Added printf arg checking for GNU C compilers that helps check
|
||||
printf-style functions in calc. Thanks goes to Martin Buck (m at
|
||||
rtin-buck dor de) for this patch.
|
||||
|
||||
Fixed issues where the argument of a printf-like did not match the
|
||||
format type.
|
||||
|
||||
Removed build function md5(). The MD5 hash has been compromised to
|
||||
such a degree that is it no longer advisable to use this function.
|
||||
|
||||
Removed build function sha(). The SHA hash has been compromised to
|
||||
such a degree that is it no longer advisable to use this function.
|
||||
Note that the SHA-1 hash has not been compromised to the same degree
|
||||
and so this hash function remains.
|
||||
|
||||
Renamed shs1.c to sha1.c. Renamed shs1.h to sha1.h.
|
||||
|
||||
Added custom registers. The custom register function:
|
||||
|
||||
custom("register", 3)
|
||||
|
||||
returns the value of custom register 3. Custom registers, initialized
|
||||
with 0, may take on any calc value:
|
||||
|
||||
custom("register", regnum, value)
|
||||
|
||||
Added REGNUM_MAX to the sysinfo custom function to return the maximum
|
||||
register number:
|
||||
|
||||
custom("sysinfo", "REGNUM_MAX")
|
||||
|
||||
which defaults to 31. The first custom register is 0 and thus the
|
||||
default number of custom registers is 32.
|
||||
|
||||
Added E_OK #define in calc.h to indicate no error (0).
|
||||
|
||||
Renamed C function powivalue() in value.c to powvalue() because it
|
||||
now handles raising NUMBER or COMPLEX to a NUMBER or COMPLEX power.
|
||||
|
||||
The powervalue() function in value.c may be given a NULL epsilon
|
||||
which will cause to the builtin epsilon value to be used.
|
||||
|
||||
Calc supports both real and complex exponentiation bases and exponents.
|
||||
For a ^ b and a ** b, "a" and "b" can be a real value or a complex value:
|
||||
|
||||
2^3 3i^4
|
||||
2.5 ^ 3.5 0.5i ^ 0.25
|
||||
2.5 ^ 2.718i 3.13145i ^ 0.30103i
|
||||
|
||||
Fixed typos in the calc man page thanks to a Debian bug report
|
||||
by A. Costa <agcosta at gis dot .net> that wsa kindly forwarded
|
||||
to us by Martin Buck <m at rtin-buck dot de>.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.1.8 to 2.12.1.9:
|
||||
|
||||
@@ -125,7 +557,7 @@ The following are the changes from calc version 2.12.1.8 to 2.12.1.9:
|
||||
The usage help file is now formed from the contents of the calc man page.
|
||||
So "help usage" prints the version of the calc man page. Added ${COL}
|
||||
makefile symbol to support the formation of the calc.usage file from
|
||||
calc.1 via the CALCPAGER (less).
|
||||
calc.1 via the CALCPAGER (less) or NROFF (if NROFF is non-empty).
|
||||
|
||||
The "help calc" command is now equivalent to "help help".
|
||||
|
||||
@@ -154,6 +586,9 @@ The following are the changes from calc version 2.12.1.8 to 2.12.1.9:
|
||||
Calc and cscripts are installed mode 0755 instead of 0555 to
|
||||
make rpmlint happy.
|
||||
|
||||
Make clobber cleanup as suggested by Martin Buck <m at rtin-buck dot de>.
|
||||
The clobber rule now depends on the clean rule.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.1.6 to 2.12.1.7:
|
||||
|
||||
@@ -162,7 +597,7 @@ The following are the changes from calc version 2.12.1.6 to 2.12.1.7:
|
||||
builtin, the CPU time reported for long running processes will not
|
||||
wrap around to 0 after only a few months.
|
||||
|
||||
Added the calc builtin function, systime(), to return the amount of
|
||||
Added the calc built0in function, systime(), to return the amount of
|
||||
kernel CPU time used by the current process.
|
||||
|
||||
The runtime() builtin function now returns the total amount of CPU
|
||||
@@ -1727,7 +2162,7 @@ The following are the changes from calc version 2.11.1 to 2.11.1t2.2:
|
||||
Cleaned up help display system. Help file lines that begin with
|
||||
'##' are not displayed.
|
||||
|
||||
Calc source and documentation now uses the the these terms:
|
||||
Calc source and documentation now uses these terms:
|
||||
|
||||
*.cal files calc resource file
|
||||
*.a files calc binary link library
|
||||
@@ -1765,7 +2200,7 @@ The following are the changes from calc version 2.11.0t10 to 2.11.0t11:
|
||||
Fixed whitespace to make the best use of 8 character tabs.
|
||||
|
||||
Fixed some bugs relating to '// and %' in combination with some
|
||||
of the the rounding modes based on a patch from Ernest Bowen
|
||||
of the rounding modes based on a patch from Ernest Bowen
|
||||
<ernie at turing dot une dot edu dot au>.
|
||||
|
||||
A patch from Klaus Alexander Seistrup <klaus at seistrup dot dk>, when
|
||||
@@ -1959,7 +2394,7 @@ The following are the changes from calc version 2.11.0t10 to 2.11.0t11:
|
||||
|
||||
Where ``/usr/local/bin/calc'' is the path to the calc binary.
|
||||
Additional -options may be added to the line, but it MUST
|
||||
start with -S. For example, the the executable file ``plus''
|
||||
start with -S. For example, the executable file ``plus''
|
||||
contain the following:
|
||||
|
||||
#!/usr/local/bin/calc -S -e
|
||||
@@ -4422,7 +4857,7 @@ The following are the changes from calc version 2.10.3t0 to 2.10.3t2:
|
||||
|
||||
global variable: to the end of the session with calc
|
||||
|
||||
static within a function definition: to the the first of:
|
||||
static within a function definition: to the first of:
|
||||
|
||||
an end of a global, static or local declaration (including
|
||||
initialization code) with the same identifier
|
||||
@@ -4520,7 +4955,7 @@ The following are the changes from calc version 2.10.3t0 to 2.10.3t2:
|
||||
|
||||
global a, b, mat A, B[2] = {3,4}, C[2] = {4,5}, obj point P = {5,6}, Q
|
||||
|
||||
Fixed some bugs related to global and static scoping. See the the
|
||||
Fixed some bugs related to global and static scoping. See the
|
||||
5200 regress test and lib/test5200.cal for details.
|
||||
|
||||
Optimized opcode generator so that functions defined using '=' do not
|
||||
@@ -5017,7 +5452,7 @@ The following are the changes from calc version 2.10.2t4 to 2.10.2t24:
|
||||
ILDFLAGS are flags given to ${CC} for linking .o files
|
||||
for intermediate progs
|
||||
|
||||
CC is how the the C compiler is invoked
|
||||
CC is how the C compiler is invoked
|
||||
|
||||
Added more tests to regress.cal.
|
||||
|
||||
@@ -5242,7 +5677,7 @@ The following are the changes from calc version 2.10.2t1 to 2.10.2t3:
|
||||
Some systems has a libc symbolic qadd() that conflicted with calc's
|
||||
qadd function. To avoid this, qadd() has been renamed to qqadd().
|
||||
|
||||
The calc error codes are produced from the the calcerr.tbl file.
|
||||
The calc error codes are produced from the calcerr.tbl file.
|
||||
Instead of changing #defines in value.h, one can not edit calcerr.tbl.
|
||||
The Makefile builds calcerr.h from this file.
|
||||
|
||||
@@ -5785,7 +6220,7 @@ The following are the changes from calc version 2.9.3t11 to 2.10.0t12:
|
||||
LDFLAGS are flags given to ${CC} for linking .o files
|
||||
ILDFLAGS are given to ${CC} for linking .o's for intermediate progs
|
||||
|
||||
CC is how the the C compiler is invoked
|
||||
CC is how the C compiler is invoked
|
||||
|
||||
The syntax error:
|
||||
|
||||
@@ -6434,11 +6869,11 @@ Following is a list of visible changes to calc from version 1.24.7 to 1.26.1:
|
||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.102 $
|
||||
## @(#) $Id: CHANGES,v 29.102 2007/02/18 14:45:46 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
|
||||
## @(#) $Revision: 30.28 $
|
||||
## @(#) $Id: CHANGES,v 30.28 2013/08/11 01:18:56 chongo Exp chongo $
|
||||
## @(#) $Source: /usr/local/src/bin/calc/RCS/CHANGES,v $
|
||||
##
|
||||
## Under source code control: 1993/06/02 18:12:57
|
||||
## File existed as early as: 1989
|
||||
|
28
COPYING
28
COPYING
@@ -6,15 +6,15 @@ This file is Copyrighted
|
||||
|
||||
This file is covered under the following Copyright:
|
||||
|
||||
Copyright (C) 1999 Landon Curt Noll
|
||||
Copyright (C) 1999-2008 Landon Curt Noll
|
||||
All rights reserved.
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
# @(#) $Revision: 29.9 $
|
||||
# @(#) $Id: COPYING,v 29.9 2007/02/11 10:16:31 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/COPYING,v $
|
||||
# @(#) $Revision: 30.2 $
|
||||
# @(#) $Id: COPYING,v 30.2 2008/10/24 10:46:52 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/bin/calc/RCS/COPYING,v $
|
||||
|
||||
=-=
|
||||
|
||||
@@ -45,12 +45,12 @@ Calc is covered by the GNU Lesser General Public License
|
||||
Public License by the calc command: help copying-lgpl
|
||||
|
||||
You should have received a copy of the version 2.1 GNU Lesser General
|
||||
Public License with calc; if not, write to:
|
||||
Public License with calc; if not, write to the following address:
|
||||
|
||||
Free Software Foundation, Inc.
|
||||
59 Temple Place
|
||||
Suite 330
|
||||
Boston, MA 02111-1307
|
||||
51 Franklin Street
|
||||
Fifth Floor
|
||||
Boston, MA 02110-1301
|
||||
USA
|
||||
|
||||
The contact addresses for calc is as follows:
|
||||
@@ -168,9 +168,8 @@ Calc copyrights and exception files
|
||||
|
||||
These files are not covered under one of the Copyrights listed above:
|
||||
|
||||
shs1.c shs1.h shs.c shs.h
|
||||
md5.c md5.h COPYING COPYING-LGPL
|
||||
cal/qtime.cal cal/screen.cal
|
||||
sha1.c sha1.h COPYING
|
||||
COPYING-LGPL cal/qtime.cal cal/screen.cal
|
||||
|
||||
The file COPYING-LGPL, which contains a copy of the version 2.1
|
||||
GNU Lesser General Public License, is itself Copyrighted by the
|
||||
@@ -182,11 +181,8 @@ Calc copyrights and exception files
|
||||
top of this file. It is important to note that you may distribute
|
||||
verbatim copies of this file but you may not modify this file.
|
||||
|
||||
Some of these exception files are in the public domain. The md5.c
|
||||
and md5.h files were "derived from the RSA Data Security, Inc. MD5
|
||||
Message-Digest Algorithm" and are under a copyright that allows these
|
||||
two files to be freely used and distributed. Other files are under
|
||||
the LGPL but have different authors that those listed above.
|
||||
Some of these exception files are in the public domain. Other files
|
||||
are under the LGPL but have different authors that those listed above.
|
||||
|
||||
In all cases one may use and distribute these exception files freely.
|
||||
And because one may freely distribute the LGPL covered files, the
|
||||
|
22
COPYING-LGPL
22
COPYING-LGPL
@@ -1,8 +1,8 @@
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
Version 2.1, February 1999
|
||||
|
||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
as the successor of the GNU Library Public License, version 2, hence
|
||||
the version number 2.1.]
|
||||
|
||||
Preamble
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
@@ -112,7 +112,7 @@ modification follow. Pay close attention to the difference between a
|
||||
former contains code derived from the library, whereas the latter must
|
||||
be combined with the library in order to run.
|
||||
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
GNU LESSER GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License Agreement applies to any software library or other
|
||||
@@ -146,7 +146,7 @@ such a program is covered only if its contents constitute a work based
|
||||
on the Library (independent of the use of the Library in a tool for
|
||||
writing it). Whether that is true depends on what the Library does
|
||||
and what the program that uses the Library does.
|
||||
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Library's
|
||||
complete source code as you receive it, in any medium, provided that
|
||||
you conspicuously and appropriately publish on each copy an
|
||||
@@ -432,7 +432,7 @@ decision will be guided by the two goals of preserving the free status
|
||||
of all derivatives of our free software and of promoting the sharing
|
||||
and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
NO WARRANTY
|
||||
|
||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
||||
@@ -455,7 +455,7 @@ FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
||||
DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Libraries
|
||||
|
||||
@@ -476,7 +476,7 @@ convey the exclusion of warranty; and each file should have at least the
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
@@ -485,7 +485,7 @@ convey the exclusion of warranty; and each file should have at least the
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
|
||||
Ty Coon, President of Vice
|
||||
|
||||
That's all there is to it!
|
||||
|
||||
|
||||
|
@@ -1,4 +1,4 @@
|
||||
Installing calc from the gziped tarball in 4 easy steps:
|
||||
Installing calc from the bzip2-ed tarball in 4 easy steps:
|
||||
|
||||
0) If your platform supports i686 RPMs, you may want to go to:
|
||||
|
||||
@@ -17,16 +17,30 @@ Installing calc from the gziped tarball in 4 easy steps:
|
||||
|
||||
The following 4 steps apply to calc source tree that comes from either:
|
||||
|
||||
gunzip -c calc-*.tar.gz | tar -xvf -
|
||||
bunzip2 -c calc-*.tar.bz2 | tar -xvf -
|
||||
|
||||
or from:
|
||||
|
||||
rpm -ivh calc-*.src.rpm
|
||||
cd /var/tmp
|
||||
gunzip -c /usr/src/redhat/SOURCES/calc-*.tar.gz | tar -xvf -
|
||||
bunzip2 -c /usr/src/redhat/SOURCES/calc-*.tar.bz2 | tar -xvf -
|
||||
|
||||
1) Look at the makefile, and adjust it to suit your needs.
|
||||
|
||||
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,
|
||||
one must use gmake instead of make.
|
||||
|
||||
If your target system does not have GNU Make (or equivalent), then
|
||||
you should try using the Makefile.simple and custom/Makefile.simple
|
||||
files:
|
||||
|
||||
mv Makefile Makefile.gmake
|
||||
cp Makefile.simple Makefile
|
||||
mv custom/Makefile custom/Makefile.gmake
|
||||
cp custom/Makefile.simple custom/Makefile
|
||||
|
||||
The Makefile, as shipped, is suitable for installation under
|
||||
Linux and Un*x-like environments. For the most part, the default
|
||||
values should work. If in doubt, follow the 'When in doubt'
|
||||
@@ -126,12 +140,36 @@ Installing calc from the gziped tarball in 4 easy steps:
|
||||
|
||||
2) build calc:
|
||||
|
||||
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,
|
||||
one must use gmake instead of make.
|
||||
|
||||
If your target system does not have GNU Make (or equivalent), then
|
||||
you should try using the Makefile.simple and custom/Makefile.simple
|
||||
files:
|
||||
|
||||
mv Makefile Makefile.gmake
|
||||
cp Makefile.simple Makefile
|
||||
mv custom/Makefile custom/Makefile.gmake
|
||||
cp custom/Makefile.simple custom/Makefile
|
||||
|
||||
make all
|
||||
|
||||
==> We are interested in any compiler warnings (and errors) that
|
||||
you may find. See the BUGS file if you find any compiler
|
||||
warning or errors.
|
||||
|
||||
NOTE: You can force calc to build with only static libs:
|
||||
|
||||
make clobber
|
||||
make calc-static-only BLD_TYPE=calc-static-only
|
||||
|
||||
or force calc to build with only dynamic libs:
|
||||
|
||||
make clobber
|
||||
make calc-dynamic-only BLD_TYPE=calc-dynamic-only
|
||||
|
||||
3) test calc:
|
||||
|
||||
make check
|
||||
@@ -139,6 +177,10 @@ Installing calc from the gziped tarball in 4 easy steps:
|
||||
==> If you run into problems, read the BUGS file and follow
|
||||
the instructions found in there.
|
||||
|
||||
NOTE: For a quiet check which only prints if something goes wrong:
|
||||
|
||||
make chk
|
||||
|
||||
4) install calc:
|
||||
|
||||
make install
|
||||
@@ -146,7 +188,7 @@ Installing calc from the gziped tarball in 4 easy steps:
|
||||
We suggest that you might want to read the README file and look at
|
||||
the calc help subsystem. See the README file for details.
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2007 Landon Curt Noll
|
||||
##
|
||||
## Calc is open software; you can redistribute it and/or modify it under
|
||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
||||
@@ -160,11 +202,11 @@ the calc help subsystem. See the README file for details.
|
||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.9 $
|
||||
## @(#) $Id: HOWTO.INSTALL,v 29.9 2006/09/18 13:11:57 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/HOWTO.INSTALL,v $
|
||||
## @(#) $Revision: 30.6 $
|
||||
## @(#) $Id: HOWTO.INSTALL,v 30.6 2007/10/16 12:22:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/bin/calc/RCS/HOWTO.INSTALL,v $
|
||||
##
|
||||
## Under source code control: 1999/09/27 20:48:44
|
||||
## File existed as early as: 1999
|
||||
|
8
LIBRARY
8
LIBRARY
@@ -636,11 +636,11 @@ need call libcalc_call_me_last() only once.
|
||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.7 $
|
||||
## @(#) $Id: LIBRARY,v 29.7 2007/02/18 14:45:46 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/LIBRARY,v $
|
||||
## @(#) $Revision: 30.1 $
|
||||
## @(#) $Id: LIBRARY,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/bin/calc/RCS/LIBRARY,v $
|
||||
##
|
||||
## Under source code control: 1993/07/30 19:44:49
|
||||
## File existed as early as: 1993
|
||||
|
5685
Makefile.simple
Normal file
5685
Makefile.simple
Normal file
File diff suppressed because it is too large
Load Diff
8
README
8
README
@@ -132,11 +132,11 @@ The calc web site is located at:
|
||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.3 $
|
||||
## @(#) $Id: README,v 29.3 2001/06/01 11:26:53 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/README,v $
|
||||
## @(#) $Revision: 30.1 $
|
||||
## @(#) $Id: README,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/bin/calc/RCS/README,v $
|
||||
##
|
||||
## Under source code control: 1995/10/25 05:27:59
|
||||
## File existed as early as: 1995
|
||||
|
111
README.WINDOWS
111
README.WINDOWS
@@ -10,6 +10,63 @@ NOTE: The main developers do not have access to a Windoz based platform.
|
||||
Of course you are welcome to send us any patches that fix your
|
||||
Windoz build environment.
|
||||
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
=-= compiling with Cygwin =-=
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
|
||||
An effort is being made to allow windows users to compile calc using the
|
||||
Cygwin project (http://sources.redhat.com/cygwin/) with the GCC compiler
|
||||
and Un*x tools for Windows.
|
||||
|
||||
The major porting work for Cygwin was performed by Thomas Jones-Low
|
||||
(tjoneslo at softstart dot com).
|
||||
|
||||
In March 2009, Michael Penk (mpenk at wuska dot com) reported success in
|
||||
installs under Cygwin:
|
||||
|
||||
On my fairly complete Cygwin installs, everything compiles,
|
||||
checks, and installs correctly. My Cygwin is configured
|
||||
in a very standard way (out of the box, using all of Cygwin's
|
||||
defaults). The install worked on 5 different machines with
|
||||
Cygwin on them: one XP home, one XP professional, and three
|
||||
Vista professionals.
|
||||
|
||||
Using the calc Makefile, he did the following:
|
||||
|
||||
make all target=Cygwin
|
||||
make check
|
||||
make install
|
||||
|
||||
He also reports:
|
||||
|
||||
Of course, one should be logged in as an Administrator when
|
||||
one builds and installs calc.
|
||||
|
||||
He was compiling calc 2.12.4.0 with Cygwin version 1.5.25-15.
|
||||
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
=-= If all else fails, for Cygwin =-=
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
|
||||
Much earlier (2001?) Thomas Jones-Low (tjoneslo at softstart dot com)
|
||||
recommended that you generate by hand all of the header files that
|
||||
by the Makefile. This has been done for you via the makefile rule:
|
||||
|
||||
make win32_hsrc
|
||||
|
||||
which uses the Makefile variables in win32.mkdef to form these header
|
||||
files under win32 directory.
|
||||
|
||||
You will find generated versions of these files located in the win32
|
||||
sub-directory. These files may be appropriate for your Cygwin building
|
||||
needs.
|
||||
|
||||
In particular:
|
||||
|
||||
Just copy the win32/*.[ch] files up into the top level calc
|
||||
source directory, edit them (if needed) and build using the
|
||||
Cygwin GCC compiler and Cygwin build environment.
|
||||
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
=-= compiling under DJGPP =-=
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
@@ -68,52 +125,8 @@ Look for Makefile comments of the form:
|
||||
Follow those recommendations. In cases where they conflict with
|
||||
the above Makefile list, follow the recommendation in the Makefile.
|
||||
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
=-= compiling with Cygwin =-=
|
||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||
|
||||
An effort is being made to allow windows users to compile calc using the
|
||||
Cygwin project (http://sources.redhat.com/cygwin/) with the GCC compiler
|
||||
and Un*x tools for Windows.
|
||||
|
||||
The major porting work was performed by Thomas Jones-Low
|
||||
(tjoneslo at softstart dot com). He said:
|
||||
|
||||
I had previous stated to this group that I have successfully managed
|
||||
to port a version of Calc to Windows, and promised some point to
|
||||
post what was required, so here it is.
|
||||
|
||||
One obvious manner of doing this port is to get the latest version
|
||||
of the Cygwin project (http://sources.redhat.com/cygwin/) with the
|
||||
GCC compiler and Un*x tools for Windows and recompile.
|
||||
|
||||
I built my working version using Calc ... I am using Visual C++
|
||||
version 7.0, which is an older version of the Microsoft development
|
||||
tools. The make file provided with Calc is not compatible with
|
||||
NMAKE, so I used the Visual Studio tools to generate another one
|
||||
(not included). Calc is built in two parts, calc.dll, which is the
|
||||
library, and calc.exe which is the command line interface.
|
||||
|
||||
He recommended that you generate by hand all of the header files that
|
||||
by the Makefile. This has been done for you via the makefile rule:
|
||||
|
||||
make win32_hsrc
|
||||
|
||||
which uses the Makefile variables in win32.mkdef to form these header
|
||||
files under win32 directory.
|
||||
|
||||
You will find generated versions of these files located in the win32
|
||||
sub-directory. These files may be appropriate for your Cygwin building
|
||||
needs.
|
||||
|
||||
In particular:
|
||||
|
||||
Just copy the win32/*.[ch] files up into the top level calc
|
||||
source directory, edit them (if needed) and build using the
|
||||
Cygwin GCC compiler and Cygwin build environment.
|
||||
|
||||
|
||||
## Copyright (C) 2002-2007 Landon Curt Noll and Thomas Jones-Low
|
||||
## Copyright (C) 2002-2009 Landon Curt Noll and Thomas Jones-Low
|
||||
##
|
||||
## Calc is open software; you can redistribute it and/or modify it under
|
||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
||||
@@ -127,11 +140,11 @@ In particular:
|
||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.13 $
|
||||
## @(#) $Id: README.WINDOWS,v 29.13 2007/02/11 10:23:28 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/README.WINDOWS,v $
|
||||
## @(#) $Revision: 30.2 $
|
||||
## @(#) $Id: README.WINDOWS,v 30.2 2009/03/14 02:29:31 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/bin/calc/RCS/README.WINDOWS,v $
|
||||
##
|
||||
## Under source code control: 2001/02/25 14:00:05
|
||||
## File existed as early as: 2001
|
||||
|
8
addop.c
8
addop.c
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.15 $
|
||||
* @(#) $Id: addop.c,v 29.15 2007/02/18 14:24:56 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/addop.c,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: addop.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/addop.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:10
|
||||
* File existed as early as: before 1990
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: align32.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/align32.c,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: align32.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/align32.c,v $
|
||||
*
|
||||
* Under source code control: 1995/11/23 05:18:06
|
||||
* File existed as early as: 1995
|
||||
|
11
alloc.h
11
alloc.h
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.7 $
|
||||
* @(#) $Id: alloc.h,v 29.7 2007/02/12 03:57:00 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/alloc.h,v $
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: alloc.h,v 30.2 2008/04/15 21:17:57 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/alloc.h,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:29
|
||||
* File existed as early as: before 1990
|
||||
@@ -46,6 +46,9 @@
|
||||
# include <string.h>
|
||||
|
||||
#else
|
||||
#if defined(_WIN32) && defined(NOTCYGWIN)
|
||||
#include <stdio.h>
|
||||
#endif
|
||||
|
||||
# if defined(HAVE_NEWSTR)
|
||||
E_FUNC void *memcpy();
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: assocfunc.c,v 29.3 2007/02/11 10:19:14 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/assocfunc.c,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: assocfunc.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/assocfunc.c,v $
|
||||
*
|
||||
* Under source code control: 1993/07/20 23:04:27
|
||||
* File existed as early as: 1993
|
||||
|
8
blkcpy.c
8
blkcpy.c
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.12 $
|
||||
* @(#) $Id: blkcpy.c,v 29.12 2007/02/18 14:24:56 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/blkcpy.c,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: blkcpy.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/blkcpy.c,v $
|
||||
*
|
||||
* Under source code control: 1997/04/18 20:41:26
|
||||
* File existed as early as: 1997
|
||||
|
8
blkcpy.h
8
blkcpy.h
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: blkcpy.h,v 29.3 2007/02/11 10:19:14 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/blkcpy.h,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: blkcpy.h,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/blkcpy.h,v $
|
||||
*
|
||||
* Under source code control: 1997/04/18 20:41:25
|
||||
* File existed as early as: 1997
|
||||
|
8
block.c
8
block.c
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: block.c,v 29.5 2007/02/18 14:24:56 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/block.c,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: block.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/block.c,v $
|
||||
*
|
||||
* Under source code control: 1997/02/27 00:29:40
|
||||
* File existed as early as: 1997
|
||||
|
8
block.h
8
block.h
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: block.h,v 29.3 2007/02/11 10:19:14 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/block.h,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: block.h,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/block.h,v $
|
||||
*
|
||||
* Under source code control: 1997/02/21 05:03:39
|
||||
* File existed as early as: 1997
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: byteswap.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/byteswap.c,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: byteswap.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/byteswap.c,v $
|
||||
*
|
||||
* Under source code control: 1995/10/11 04:44:01
|
||||
* File existed as early as: 1995
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: byteswap.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/byteswap.h,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: byteswap.h,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/byteswap.h,v $
|
||||
*
|
||||
* Under source code control: 1995/10/11 04:44:01
|
||||
* File existed as early as: 1995
|
||||
|
41
cal/Makefile
41
cal/Makefile
@@ -16,11 +16,11 @@
|
||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.24 $
|
||||
# @(#) $Id: Makefile,v 29.24 2006/09/18 13:13:25 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/Makefile,v $
|
||||
# @(#) $Revision: 30.5 $
|
||||
# @(#) $Id: Makefile,v 30.5 2011/05/23 22:50:18 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/bin/calc/cal/RCS/Makefile,v $
|
||||
#
|
||||
# Under source code control: 1991/07/21 05:00:54
|
||||
# File existed as early as: 1991
|
||||
@@ -34,13 +34,30 @@
|
||||
# required vars
|
||||
#
|
||||
SHELL= /bin/sh
|
||||
MAKE_FILE= Makefile
|
||||
|
||||
####
|
||||
# Normally, the upper level makefile will set these values. We provide
|
||||
# a default here just in case you want to build from this directory.
|
||||
####
|
||||
|
||||
# Normally certain files depend on the Makefile. If the Makefile is
|
||||
# changed, then certain steps should be redone. If MAKE_FILE is
|
||||
# set to Makefile, then these files will depend on Makefile. If
|
||||
# MAKE_FILE is empty, then they wont.
|
||||
#
|
||||
# If in doubt, set MAKE_FILE to Makefile
|
||||
#
|
||||
MAKE_FILE= Makefile
|
||||
|
||||
# Controlling file makefile basename (without the path)
|
||||
#
|
||||
# This is the basename same of the makefile that may/does/will drive
|
||||
# this makefile.
|
||||
#
|
||||
# If in doubt, set TOP_MAKE_FILE to Makefile
|
||||
#
|
||||
TOP_MAKE_FILE= Makefile
|
||||
|
||||
# Where the system include (.h) files are kept
|
||||
#
|
||||
# For DJGPP, select:
|
||||
@@ -94,9 +111,6 @@ CALC_SHAREDIR= /usr/share/calc
|
||||
# ---------------------------------------------------------------
|
||||
# ${HELPDIR} where the help directory is installed
|
||||
# ${CALC_INCDIR} where the calc include files are installed
|
||||
# ${CUSTOMCALDIR} where custom *.cal files are installed
|
||||
# ${CUSTOMHELPDIR} where custom help files are installed
|
||||
# ${CUSTOMINCDIR} where custom .h files are installed
|
||||
# ${SCRIPTDIR} where calc shell scripts are installed
|
||||
#
|
||||
# NOTE: The install rule prepends installation paths with ${T}, which
|
||||
@@ -107,16 +121,10 @@ CALC_SHAREDIR= /usr/share/calc
|
||||
#
|
||||
# HELPDIR= ${CALC_SHAREDIR}/help
|
||||
# CALC_INCDIR= ${INCDIR}/calc
|
||||
# CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
|
||||
# CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
|
||||
# CUSTOMINCDIR= ${CALC_INCDIR}/custom
|
||||
# SCRIPTDIR= ${BINDIR}/cscript
|
||||
#
|
||||
HELPDIR= ${CALC_SHAREDIR}/help
|
||||
CALC_INCDIR= ${INCDIR}/calc
|
||||
CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
|
||||
CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
|
||||
CUSTOMINCDIR= ${CALC_INCDIR}/custom
|
||||
SCRIPTDIR= ${BINDIR}/cscript
|
||||
|
||||
# T - top level directory under which calc will be installed
|
||||
@@ -185,7 +193,8 @@ CALC_FILES= README bigprime.cal deg.cal ellip.cal lucas.cal lucas_chk.cal \
|
||||
beer.cal hello.cal test5100.cal test5200.cal randombitrun.cal \
|
||||
randomrun.cal repeat.cal xx_print.cal natnumset.cal qtime.cal \
|
||||
test8400.cal test8500.cal test8600.cal chi.cal intfile.cal screen.cal \
|
||||
dotest.cal set8700.cal set8700.line alg_config.cal sumtimes.cal
|
||||
dotest.cal set8700.cal set8700.line alg_config.cal sumtimes.cal \
|
||||
dms.cal hms.cal gvec.cal
|
||||
|
||||
# These files are found (but not built) in the distribution
|
||||
#
|
||||
@@ -254,7 +263,7 @@ echo_inst_files:
|
||||
|
||||
clean:
|
||||
|
||||
clobber:
|
||||
clobber: clean
|
||||
${RM} -f .all
|
||||
|
||||
# install everything
|
||||
|
655
cal/README
655
cal/README
@@ -173,7 +173,8 @@ alg_config.cal
|
||||
|
||||
beer.cal
|
||||
|
||||
Calc's contribution to the 99 Bottles of Beer web page:
|
||||
This calc resource is calc's contribution to the 99 Bottles of Beer
|
||||
web page:
|
||||
|
||||
http://www.ionet.net/~timtroyr/funhouse/beer.html#calc
|
||||
|
||||
@@ -191,6 +192,18 @@ bernoulli.cal
|
||||
the builtin function.
|
||||
|
||||
|
||||
bernpoly.cal
|
||||
|
||||
bernpoly(n,z)
|
||||
|
||||
Computes the nth Bernoulli polynomial at z for arbitrary n,z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Bernoulli_polynomials
|
||||
http://mathworld.wolfram.com/BernoulliPolynomial.html
|
||||
|
||||
for further information
|
||||
|
||||
|
||||
bigprime.cal
|
||||
|
||||
bigprime(a, m, p)
|
||||
@@ -198,6 +211,34 @@ bigprime.cal
|
||||
A prime test, base a, on p*2^x+1 for even x>m.
|
||||
|
||||
|
||||
brentsolve.cal
|
||||
|
||||
brentsolve(low, high,eps)
|
||||
|
||||
A root-finder implementwed 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
|
||||
different from the obligatory "f".
|
||||
|
||||
See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Brent%27s_method
|
||||
http://mathworld.wolfram.com/BrentsMethod.html
|
||||
|
||||
to find out more about the Brent-Dekker method.
|
||||
|
||||
|
||||
constants.cal
|
||||
|
||||
e()
|
||||
G()
|
||||
|
||||
An implementation of different constants to arbitrary precision.
|
||||
|
||||
|
||||
chi.cal
|
||||
|
||||
Z(x[, eps])
|
||||
@@ -226,14 +267,37 @@ chrem.cal
|
||||
|
||||
deg.cal
|
||||
|
||||
deg(deg, min, sec)
|
||||
deg_add(a, b)
|
||||
deg_neg(a)
|
||||
deg_sub(a, b)
|
||||
deg_mul(a, b)
|
||||
deg_print(a)
|
||||
|
||||
Calculate in degrees, minutes, and seconds. For a more functional
|
||||
version see dms.cal.
|
||||
|
||||
|
||||
dms.cal
|
||||
|
||||
dms(deg, min, sec)
|
||||
dms_add(a, b)
|
||||
dms_neg(a)
|
||||
dms_sub(a, b)
|
||||
dms_mul(a, b)
|
||||
dms_print(a)
|
||||
dms_abs(a)
|
||||
dms_norm(a)
|
||||
dms_test(a)
|
||||
dms_int(a)
|
||||
dms_frac(a)
|
||||
dms_rel(a,b)
|
||||
dms_cmp(a,b)
|
||||
dms_inc(a)
|
||||
dms_dec(a)
|
||||
|
||||
Calculate in degrees, minutes, and seconds.
|
||||
Calculate in degrees, minutes, and seconds. Unlike deg.cal, increments
|
||||
are on the arc second level. See also hms.cal.
|
||||
|
||||
|
||||
dotest.cal
|
||||
@@ -268,6 +332,166 @@ dotest.cal
|
||||
dotest("set8700.line");
|
||||
|
||||
|
||||
factorial.cal
|
||||
|
||||
factorial(n)
|
||||
|
||||
Calculates the product of the positive integers up to and including n.
|
||||
|
||||
See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Factorial
|
||||
|
||||
for information on the factorial. This function depends on the script
|
||||
toomcook.cal.
|
||||
|
||||
|
||||
primorial(a,b)
|
||||
|
||||
Calculates the product of the primes between a and b. If a is not prime
|
||||
the next higher prime is taken as the starting point. If b is not prime
|
||||
the next lower prime is taking as the end point b. The end point b must
|
||||
not exceed 4294967291. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Primorial
|
||||
|
||||
for information on the primorial.
|
||||
|
||||
|
||||
factorial2.cal
|
||||
|
||||
This file contents a small variety of integer functions that can, with
|
||||
more or less pressure, be related to the factorial.
|
||||
|
||||
doublefactorial(n)
|
||||
|
||||
Calculates the double factorial n!! with different algorithms for
|
||||
- n odd
|
||||
- n even and positive
|
||||
- n (real|complex) sans the negative half integers
|
||||
|
||||
See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Double_factorial
|
||||
http://mathworld.wolfram.com/DoubleFactorial.html
|
||||
|
||||
for information on the double factorial. This function depends on
|
||||
the script toomcook.cal, factorial.cal and specialfunctions.cal.
|
||||
|
||||
|
||||
binomial(n,k)
|
||||
|
||||
Calculates the binomial coefficients for n large and k = k \pm
|
||||
n/2. Defaults to the built-in function for smaller and/or different
|
||||
values. Meant as a complete replacement for comb(n,k) with only a
|
||||
very small overhead. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Binomial_coefficient
|
||||
|
||||
for information on the binomial. This function depends on the script
|
||||
toomcook.cal factorial.cal and specialfunctions.cal.
|
||||
|
||||
|
||||
bigcatalan(n)
|
||||
|
||||
Calculates the n-th Catalan number for n large. It is usefull
|
||||
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:
|
||||
|
||||
http://en.wikipedia.org/wiki/Catalan_number
|
||||
http://mathworld.wolfram.com/CatalanNumber.html
|
||||
|
||||
for information on Catalan numbers. This function depends on the scripts
|
||||
toomcook.cal, factorial.cal and specialfunctions.cal.
|
||||
|
||||
|
||||
stirling1(n,m)
|
||||
|
||||
Calculates the Stirling number of the first kind. It does so with
|
||||
building a list of all of the smaller results. It might be a good
|
||||
idea, though, to run it once for the highest n,m first if many
|
||||
Stirling numbers are needed at once, for example in a series. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Stirling_numbers_of_the_first_kind
|
||||
http://mathworld.wolfram.com/StirlingNumberoftheFirstKind.html
|
||||
Algorithm 3.17, Donald Kreher and Douglas Simpson, "Combinatorial
|
||||
Algorithms", CRC Press, 1998, page 89.
|
||||
|
||||
for information on Stirling numbers of the first kind.
|
||||
|
||||
|
||||
stirling2(n,m)
|
||||
stirling2caching(n,m)
|
||||
|
||||
Calculate the Stirling number of the second kind.
|
||||
The first function stirling2(n,m) does it with the sum
|
||||
m
|
||||
====
|
||||
1 \ n m - k
|
||||
-- > k (- 1) binomial(m, k)
|
||||
m! /
|
||||
====
|
||||
k = 0
|
||||
|
||||
The other function stirling2caching(n,m) does it by way of the
|
||||
reccurence 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
|
||||
a series. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Stirling_numbers_of_the_second_kind
|
||||
http://mathworld.wolfram.com/StirlingNumberoftheSecondKind.html
|
||||
|
||||
Algorithm 3.17, Donald Kreher and Douglas Simpson, "Combinatorial
|
||||
Algorithms", CRC Press, 1998, page 89.
|
||||
|
||||
for information on Stirling numbers of the second kind.
|
||||
|
||||
|
||||
bell(n)
|
||||
|
||||
Calculate the n-th Bell number. This may take some time for large n.
|
||||
See:
|
||||
|
||||
http://oeis.org/A000110
|
||||
http://en.wikipedia.org/wiki/Bell_number
|
||||
http://mathworld.wolfram.com/BellNumber.html
|
||||
|
||||
for information on Bell numbers.
|
||||
|
||||
|
||||
subfactorial(n)
|
||||
|
||||
Calculate the n-th subfactorial or derangement. This may take some
|
||||
time for large n. See:
|
||||
|
||||
http://mathworld.wolfram.com/Derangement.html
|
||||
http://en.wikipedia.org/wiki/Derangement
|
||||
|
||||
for information on subfactorials.
|
||||
|
||||
|
||||
risingfactorial(x,n)
|
||||
|
||||
Calculates the rising factorial or Pochammer symbol of almost arbitrary
|
||||
x,n. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Pochhammer_symbol
|
||||
http://mathworld.wolfram.com/PochhammerSymbol.html
|
||||
|
||||
for information on rising factorials.
|
||||
|
||||
fallingfactorial(x,n)
|
||||
|
||||
Calculates the rising factorial of almost arbitrary x,n. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Pochhammer_symbol
|
||||
http://mathworld.wolfram.com/PochhammerSymbol.html
|
||||
|
||||
for information on falling factorials.
|
||||
|
||||
|
||||
ellip.cal
|
||||
|
||||
efactor(iN, ia, B, force)
|
||||
@@ -275,6 +499,13 @@ ellip.cal
|
||||
Attempt to factor using the elliptic functions: y^2 = x^3 + a*x + b.
|
||||
|
||||
|
||||
gvec.cal
|
||||
|
||||
gvec(function, vector)
|
||||
|
||||
Vectorize any single-input function or trailing operator.
|
||||
|
||||
|
||||
hello.cal
|
||||
|
||||
Calc's contribution to the Hello World! page:
|
||||
@@ -285,6 +516,27 @@ hello.cal
|
||||
NOTE: This resource produces a lot of output. :-)
|
||||
|
||||
|
||||
hms.cal
|
||||
|
||||
hms(hour, min, sec)
|
||||
hms_add(a, b)
|
||||
hms_neg(a)
|
||||
hms_sub(a, b)
|
||||
hms_mul(a, b)
|
||||
hms_print(a)
|
||||
hms_abs(a)
|
||||
hms_norm(a)
|
||||
hms_test(a)
|
||||
hms_int(a)
|
||||
hms_frac(a)
|
||||
hms_rel(a,b)
|
||||
hms_cmp(a,b)
|
||||
hms_inc(a)
|
||||
hms_dec(a)
|
||||
|
||||
Calculate in hours, minutes, and seconds. See also dmscal.
|
||||
|
||||
|
||||
intfile.cal
|
||||
|
||||
file2be(filename)
|
||||
@@ -312,6 +564,37 @@ intfile.cal
|
||||
of the integer become the last octets of the file.
|
||||
|
||||
|
||||
lambertw.cal
|
||||
|
||||
lambertw(z,branch)
|
||||
|
||||
Computes Lambert's W-function at "z" at branch "branch". See
|
||||
|
||||
http://en.wikipedia.org/wiki/Lambert_W_function
|
||||
http://mathworld.wolfram.com/LambertW-Function.html
|
||||
https://cs.uwaterloo.ca/research/tr/1993/03/W.pdf
|
||||
http://arxiv.org/abs/1003.1628
|
||||
|
||||
to get more information.
|
||||
|
||||
This file includes also an implementation for the series described in
|
||||
Corless et al. (1996) eq. 4.22 (W-pdf) and Verebic (2010) (arxive link)
|
||||
eqs.35-37.
|
||||
|
||||
The series has been implemented to get a different algorithm
|
||||
for checking the results. This was necessary because the results
|
||||
of the implementation in Maxima, the only program with a general
|
||||
lambert-w implementation at hand at that time, differed slightly. The
|
||||
Maxima versions tested were: Maxima 5.21.1 and 5.29.1. The current
|
||||
version of this code concurs with the results of Mathematica`s(tm)
|
||||
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
|
||||
be given the branches explicitly. See the code in lambertw.cal
|
||||
for further information.
|
||||
|
||||
|
||||
linear.cal
|
||||
|
||||
linear(x0, y0, x1, y1, x)
|
||||
@@ -320,6 +603,24 @@ linear.cal
|
||||
Requires x0 != y0.
|
||||
|
||||
|
||||
lnseries.cal
|
||||
|
||||
lnseries(limit)
|
||||
lnfromseries(n)
|
||||
deletelnseries()
|
||||
|
||||
Calculates a series of n natural logarithms at 1,2,3,4...n. It
|
||||
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
|
||||
the primes in the factorization. This is faster for high precision
|
||||
of the logarithms and/or long sequences.
|
||||
|
||||
The sequence need to be initiated by running either lnseries(n) or
|
||||
lnfromseries(n) once with n the upper limit of the sequence.
|
||||
|
||||
|
||||
lucas.cal
|
||||
|
||||
lucas(h, n)
|
||||
@@ -365,6 +666,7 @@ mfactor.cal
|
||||
fastest even thought the initial startup overhead is larger than
|
||||
for p_elim == 13.
|
||||
|
||||
|
||||
mod.cal
|
||||
|
||||
lmod(a)
|
||||
@@ -454,6 +756,7 @@ pi.cal
|
||||
Lambert Meertens. See also the ABC Programmer's Handbook, by Geurts,
|
||||
Meertens & Pemberton, published by Prentice-Hall (UK) Ltd., 1990.
|
||||
|
||||
|
||||
pix.cal
|
||||
|
||||
pi_of_x(x)
|
||||
@@ -536,10 +839,10 @@ randmprime.cal
|
||||
|
||||
randmprime(bits, seed [,dbg])
|
||||
|
||||
Find a prime of the form h*2^n-1 >= 2^bits for some given x. The initial
|
||||
search points for 'h' and 'n' are selected by a cryptographic pseudo-random
|
||||
number generator. The optional argument, dbg, if set to 1, 2 or 3
|
||||
turn on various debugging print statements.
|
||||
Find a prime of the form h*2^n-1 >= 2^bits for some given x. The
|
||||
initial search points for 'h' and 'n' are selected by a cryptographic
|
||||
pseudo-random number generator. The optional argument, dbg, if set
|
||||
to 1, 2 or 3 turn on various debugging print statements.
|
||||
|
||||
|
||||
randombitrun.cal
|
||||
@@ -591,8 +894,8 @@ repeat.cal
|
||||
|
||||
regress.cal
|
||||
|
||||
Test the correct execution of the calculator by reading this resource file.
|
||||
Errors are reported with '****' messages, or worse. :-)
|
||||
Test the correct execution of the calculator by reading this resource
|
||||
file. Errors are reported with '****' messages, or worse. :-)
|
||||
|
||||
|
||||
screen.cal
|
||||
@@ -638,15 +941,17 @@ screen.cal
|
||||
Cyan
|
||||
White
|
||||
|
||||
Define ANSI control sequences providing (i.e., cursor movement, changing
|
||||
foreground or background color, etc.) for VT100 terminals and terminal
|
||||
window emulators (i.e., xterm, Apple OS/X Terminal, etc.) that support them.
|
||||
Define ANSI control sequences providing (i.e., cursor movement,
|
||||
changing foreground or background color, etc.) for VT100 terminals
|
||||
and terminal window emulators (i.e., xterm, Apple OS/X Terminal,
|
||||
etc.) that support them.
|
||||
|
||||
For example:
|
||||
|
||||
read screen
|
||||
print green:"This is green. ":red:"This is red.":black
|
||||
|
||||
|
||||
seedrandom.cal
|
||||
|
||||
seedrandom(seed1, seed2, bitsize [,trials])
|
||||
@@ -688,8 +993,247 @@ solve.cal
|
||||
solve(low, high, epsilon)
|
||||
|
||||
Solve the equation f(x) = 0 to within the desired error value for x.
|
||||
The function 'f' must be defined outside of this routine, and the low
|
||||
and high values are guesses which must produce values with opposite signs.
|
||||
The function 'f' must be defined outside of this routine, and the
|
||||
low and high values are guesses which must produce values with
|
||||
opposite signs.
|
||||
|
||||
|
||||
specialfunctions.cal
|
||||
|
||||
beta(a,b)
|
||||
|
||||
Calculates the value of the beta function. See:
|
||||
|
||||
https://en.wikipedia.org/wiki/Beta_function
|
||||
http://mathworld.wolfram.com/BetaFunction.html
|
||||
http://dlmf.nist.gov/5.12
|
||||
|
||||
for information on the beta function.
|
||||
|
||||
|
||||
betainc(a,b,z)
|
||||
|
||||
Calculates the value of the regularized incomplete beta function. See:
|
||||
|
||||
https://en.wikipedia.org/wiki/Beta_function
|
||||
http://mathworld.wolfram.com/RegularizedBetaFunction.html
|
||||
http://dlmf.nist.gov/8.17
|
||||
|
||||
for information on the regularized incomplete beta function.
|
||||
|
||||
|
||||
expoint(z)
|
||||
|
||||
Calculates the value of the exponential integral Ei(z) function at z.
|
||||
See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Exponential_integral
|
||||
http://www.cs.utah.edu/~vpegorar/research/2011_JGT/
|
||||
|
||||
for information on the exponential integral Ei(z) function.
|
||||
|
||||
|
||||
erf(z)
|
||||
|
||||
Calculates the value of the error function at z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Error_function
|
||||
|
||||
for information on the error function function.
|
||||
|
||||
|
||||
erfc(z)
|
||||
|
||||
Calculates the value of the complementary error function at z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Error_function
|
||||
|
||||
for information on the complementary error function function.
|
||||
|
||||
|
||||
erfi(z)
|
||||
|
||||
Calculates the value of the imaginary error function at z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Error_function
|
||||
|
||||
for information on the imaginary error function function.
|
||||
|
||||
|
||||
erfinv(x)
|
||||
|
||||
Calculates the inverse of the error function at x. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Error_function
|
||||
|
||||
for information on the inverse of the error function function.
|
||||
|
||||
|
||||
faddeeva(z)
|
||||
|
||||
Calculates the value of the complex error function at z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Faddeeva_function
|
||||
|
||||
for information on the complex error function function.
|
||||
|
||||
|
||||
gamma(z)
|
||||
|
||||
Calculates the value of the Euler gamma function at z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Gamma_function
|
||||
http://dlmf.nist.gov/5
|
||||
|
||||
for information on the Euler gamma function.
|
||||
|
||||
|
||||
gammainc(a,z)
|
||||
|
||||
Calculates the value of the lower incomplete gamma function for
|
||||
arbitrary a, z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Incomplete_gamma_function
|
||||
|
||||
for information on the lower incomplete gamma function.
|
||||
|
||||
gammap(a,z)
|
||||
|
||||
Calculates the value of the regularized lower incomplete gamma
|
||||
function for a, z with a not in -N. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Incomplete_gamma_function
|
||||
|
||||
for information on the regularized lower incomplete gamma function.
|
||||
|
||||
gammaq(a,z)
|
||||
|
||||
Calculates the value of the regularized upper incomplete gamma
|
||||
function for a, z with a not in -N. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Incomplete_gamma_function
|
||||
|
||||
for information on the regularized upper incomplete gamma function.
|
||||
|
||||
|
||||
heavisidestep(x)
|
||||
|
||||
Computes the Heaviside stepp function (1+sign(x))/2
|
||||
|
||||
|
||||
harmonic(limit)
|
||||
|
||||
Calculates partial values of the harmonic series up to limit. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Harmonic_series_(mathematics)
|
||||
http://mathworld.wolfram.com/HarmonicSeries.html
|
||||
|
||||
for information on the harmonic series.
|
||||
|
||||
|
||||
lnbeta(a,b)
|
||||
|
||||
Calculates the natural logarithm of the beta function. See:
|
||||
|
||||
https://en.wikipedia.org/wiki/Beta_function
|
||||
http://mathworld.wolfram.com/BetaFunction.html
|
||||
http://dlmf.nist.gov/5.12
|
||||
|
||||
for information on the beta function.
|
||||
|
||||
lngamma(z)
|
||||
|
||||
Calculates the value of the logarithm of the Euler gamma function
|
||||
at z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Gamma_function
|
||||
http://dlmf.nist.gov/5.15
|
||||
|
||||
for information on the derivatives of the the Euler gamma function.
|
||||
|
||||
|
||||
polygamma(m,z)
|
||||
|
||||
Calculates the value of the m-th derivative of the Euler gamma
|
||||
function at z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Polygamma
|
||||
http://dlmf.nist.gov/5
|
||||
|
||||
for information on the n-th derivative ofthe Euler gamma function. This
|
||||
function depends on the script zeta2.cal.
|
||||
|
||||
|
||||
psi(z)
|
||||
|
||||
Calculates the value of the first derivative of the Euler gamma
|
||||
function at z. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Digamma_function
|
||||
http://dlmf.nist.gov/5
|
||||
|
||||
for information on the first derivative of the Euler gamma function.
|
||||
|
||||
|
||||
zeta(s)
|
||||
|
||||
Calculates the value of the Rieman Zeta function at s. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Riemann_zeta_function
|
||||
http://dlmf.nist.gov/25.2
|
||||
|
||||
for information on the Riemann zeta function. This function depends
|
||||
on the script zeta2.cal.
|
||||
|
||||
|
||||
statistics.cal
|
||||
|
||||
gammaincoctave(z,a)
|
||||
|
||||
Computes the regularized incomplete gamma function in a way to
|
||||
correspond with the function in Octave.
|
||||
|
||||
invbetainc(x,a,b)
|
||||
|
||||
Computes the inverse of the regularized beta function. Does so the
|
||||
brute-force way wich makes it a bit slower.
|
||||
|
||||
betapdf(x,a,b)
|
||||
betacdf(x,a,b)
|
||||
betacdfinv(x,a,b)
|
||||
betamedian(a,b)
|
||||
betamode(a,b)
|
||||
betavariance(a,b)
|
||||
betalnvariance(a,b)
|
||||
betaskewness(a,b)
|
||||
betakurtosis(a,b)
|
||||
betaentropy(a,b)
|
||||
normalpdf(x,mu,sigma)
|
||||
normalcdf(x,mu,sigma)
|
||||
probit(p)
|
||||
normalcdfinv(p,mu,sigma)
|
||||
normalmean(mu,sigma)
|
||||
normalmedian(mu,sigma)
|
||||
normalmode(mu,sigma)
|
||||
normalvariance(mu,sigma)
|
||||
normalskewness(mu,sigma)
|
||||
normalkurtosis(mu,sigma)
|
||||
normalentropy(mu,sigma)
|
||||
normalmgf(mu,sigma,t)
|
||||
normalcf(mu,sigma,t)
|
||||
chisquaredpdf(x,k)
|
||||
chisquaredpcdf(x,k)
|
||||
chisquaredmean(x,k)
|
||||
chisquaredmedian(x,k)
|
||||
chisquaredmode(x,k)
|
||||
chisquaredvariance(x,k)
|
||||
chisquaredskewness(x,k)
|
||||
chisquaredkurtosis(x,k)
|
||||
chisquaredentropy(x,k)
|
||||
chisquaredmfg(k,t)
|
||||
chisquaredcf(k,t)
|
||||
|
||||
Calculates a bunch of (hopefully) aptly named statistical functions.
|
||||
|
||||
|
||||
sumsq.cal
|
||||
@@ -751,7 +1295,8 @@ test1700.cal
|
||||
|
||||
value
|
||||
|
||||
This resource files is used by regress.cal to test the read and use keywords.
|
||||
This resource files is used by regress.cal to test the read and
|
||||
use keywords.
|
||||
|
||||
|
||||
test2600.cal
|
||||
@@ -776,8 +1321,8 @@ test2600.cal
|
||||
checkresult(x, y, z, a)
|
||||
test2600(verbose, tnum)
|
||||
|
||||
This resource files is used by regress.cal to test some of builtin functions
|
||||
in terms of accuracy and roundoff.
|
||||
This resource files is used by regress.cal to test some of builtin
|
||||
functions in terms of accuracy and roundoff.
|
||||
|
||||
|
||||
test2700.cal
|
||||
@@ -814,7 +1359,8 @@ test3100.cal
|
||||
res_inv(a)
|
||||
res(x)
|
||||
|
||||
This resource file is used by regress.cal to test determinants of a matrix
|
||||
This resource file is used by regress.cal to test determinants of
|
||||
a matrix.
|
||||
|
||||
|
||||
test3300.cal
|
||||
@@ -825,8 +1371,9 @@ test3300.cal
|
||||
testr(str, n, N, verbose)
|
||||
test3300(verbose, tnum)
|
||||
|
||||
This resource file is used by regress.cal to provide for more determinant
|
||||
tests.
|
||||
This resource file is used by regress.cal to provide for more
|
||||
determinant tests.
|
||||
|
||||
|
||||
test3400.cal
|
||||
|
||||
@@ -857,6 +1404,7 @@ test3500.cal
|
||||
This resource file is used by regress.cal to test the functions frem,
|
||||
fcnt, gcdrem.
|
||||
|
||||
|
||||
test4000.cal
|
||||
|
||||
global defaultverbose
|
||||
@@ -889,6 +1437,7 @@ test4000.cal
|
||||
This resource file is used by regress.cal to test ptest, nextcand and
|
||||
prevcand builtins.
|
||||
|
||||
|
||||
test4100.cal
|
||||
|
||||
global defaultverbose
|
||||
@@ -908,6 +1457,7 @@ test4100.cal
|
||||
|
||||
This resource file is used by regress.cal to test REDC operations.
|
||||
|
||||
|
||||
test4600.cal
|
||||
|
||||
stest(str [, verbose]) defined
|
||||
@@ -919,6 +1469,7 @@ test4600.cal
|
||||
|
||||
This resource file is used by regress.cal to test searching in files.
|
||||
|
||||
|
||||
test5100.cal
|
||||
|
||||
global a5100
|
||||
@@ -928,6 +1479,7 @@ test5100.cal
|
||||
This resource file is used by regress.cal to test the new code generator
|
||||
declaration scope and order.
|
||||
|
||||
|
||||
test5200.cal
|
||||
|
||||
global a5200
|
||||
@@ -939,6 +1491,7 @@ test5200.cal
|
||||
This resource file is used by regress.cal to test the fix of a
|
||||
global/static bug.
|
||||
|
||||
|
||||
test8400.cal
|
||||
|
||||
test8400() defined
|
||||
@@ -946,6 +1499,7 @@ test8400.cal
|
||||
This resource file is used by regress.cal to check for quit-based
|
||||
memory leaks.
|
||||
|
||||
|
||||
test8500.cal
|
||||
|
||||
global err_8500
|
||||
@@ -958,6 +1512,7 @@ test8500.cal
|
||||
|
||||
This resource file is used by regress.cal to the // and % operators.
|
||||
|
||||
|
||||
test8600.cal
|
||||
|
||||
global min_8600
|
||||
@@ -968,6 +1523,25 @@ test8600.cal
|
||||
This resource file is used by regress.cal to test a change of
|
||||
allowing up to 1024 args to be passed to a builtin function.
|
||||
|
||||
|
||||
test8900.cal
|
||||
|
||||
This function tests a number of calc resource functions contributed
|
||||
by Christoph Zurnieden. These include:
|
||||
|
||||
bernpoly.cal
|
||||
brentsolve.cal
|
||||
constants.cal
|
||||
factorial2.cal
|
||||
factorial.cal
|
||||
lambertw.cal
|
||||
lnseries.cal
|
||||
specialfunctions.cal
|
||||
statistics.cal
|
||||
toomcook.cal
|
||||
zeta2.cal
|
||||
|
||||
|
||||
unitfrac.cal
|
||||
|
||||
unitfrac(x)
|
||||
@@ -975,6 +1549,29 @@ unitfrac.cal
|
||||
Represent a fraction as sum of distinct unit fractions.
|
||||
|
||||
|
||||
toomcook.cal
|
||||
|
||||
|
||||
toomcook3(a,b)
|
||||
toomcook4(a,b)
|
||||
|
||||
Toom-Cook multiplication algorithm. Multiply two integers a,b by
|
||||
way of the Toom-Cook algorithm. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication
|
||||
|
||||
toomcook3square(a)
|
||||
toomcook4square(a)
|
||||
|
||||
Square the integer a by way of the Toom-Cook algorithm. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Toom%E2%80%93Cook_multiplication
|
||||
|
||||
The function toomCook4(a,b) calls the function toomCook3(a,b) which
|
||||
calls built-in multiplication at a specific cut-off point. The
|
||||
squaring functions act in the same way.
|
||||
|
||||
|
||||
varargs.cal
|
||||
|
||||
sc(a, b, ...)
|
||||
@@ -982,6 +1579,7 @@ varargs.cal
|
||||
Example program to use 'varargs'. Program to sum the cubes of all
|
||||
the specified numbers.
|
||||
|
||||
|
||||
xx_print.cal
|
||||
|
||||
is_octet(a) defined
|
||||
@@ -996,6 +1594,19 @@ xx_print.cal
|
||||
|
||||
Demo for the xx_print object routines.
|
||||
|
||||
|
||||
zeta2.cal
|
||||
|
||||
hurwitzzeta(s,a)
|
||||
|
||||
Calculate the value of the Hurwitz Zeta function. See:
|
||||
|
||||
http://en.wikipedia.org/wiki/Hurwitz_zeta_function
|
||||
http://dlmf.nist.gov/25.11
|
||||
|
||||
for information on this special zeta function.
|
||||
|
||||
|
||||
## Copyright (C) 2000 David I. Bell and Landon Curt Noll
|
||||
##
|
||||
## Primary author: Landon Curt Noll
|
||||
@@ -1012,10 +1623,10 @@ xx_print.cal
|
||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.16 $
|
||||
## @(#) $Id: README,v 29.16 2006/12/16 11:18:46 chongo Exp $
|
||||
## @(#) $Revision: 30.5 $
|
||||
## @(#) $Id: README,v 30.5 2013/08/11 03:26:46 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/README,v $
|
||||
##
|
||||
## Under source code control: 1990/02/15 01:50:32
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.15 $
|
||||
* @(#) $Id: alg_config.cal,v 29.15 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/alg_config.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: alg_config.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/alg_config.cal,v $
|
||||
*
|
||||
* Under source code control: 2006/06/07 14:10:11
|
||||
* File existed as early as: 2006
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: beer.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/beer.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: beer.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/beer.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/11/13 13:21:05
|
||||
* File existed as early as: 1996
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: bernoulli.cal,v 29.3 2000/12/17 12:26:04 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/bernoulli.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: bernoulli.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/bernoulli.cal,v $
|
||||
*
|
||||
* Under source code control: 1991/09/30 11:18:41
|
||||
* File existed as early as: 1991
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: bigprime.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/bigprime.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: bigprime.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/bigprime.cal,v $
|
||||
*
|
||||
* Under source code control: 1991/05/22 21:56:32
|
||||
* File existed as early as: 1991
|
||||
|
@@ -14,11 +14,11 @@
|
||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.2 $
|
||||
# @(#) $Id: bindings,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/bindings,v $
|
||||
# @(#) $Revision: 30.1 $
|
||||
# @(#) $Id: bindings,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/bin/calc/cal/RCS/bindings,v $
|
||||
#
|
||||
# Under source code control: 1993/05/02 20:09:19
|
||||
# File existed as early as: 1993
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: chi.cal,v 29.2 2001/04/08 10:21:23 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/chi.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: chi.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/chi.cal,v $
|
||||
*
|
||||
* Under source code control: 2001/03/27 14:10:11
|
||||
* File existed as early as: 2001
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: chrem.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/chrem.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: chrem.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/chrem.cal,v $
|
||||
*
|
||||
* Under source code control: 1992/09/26 01:00:47
|
||||
* File existed as early as: 1992
|
||||
|
42
cal/deg.cal
42
cal/deg.cal
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: deg.cal,v 29.4 2003/01/26 19:32:41 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/deg.cal,v $
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: deg.cal,v 30.2 2010/09/02 06:01:14 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/deg.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:33
|
||||
* File existed as early as: before 1990
|
||||
@@ -28,9 +28,9 @@
|
||||
*/
|
||||
|
||||
|
||||
obj dms {deg, min, sec};
|
||||
obj deg {deg, min, sec};
|
||||
|
||||
define dms(deg, min, sec)
|
||||
define deg(deg, min, sec)
|
||||
{
|
||||
local ans;
|
||||
|
||||
@@ -38,18 +38,18 @@ define dms(deg, min, sec)
|
||||
sec = 0;
|
||||
if (isnull(min))
|
||||
min = 0;
|
||||
obj dms ans;
|
||||
obj deg ans;
|
||||
ans.deg = deg;
|
||||
ans.min = min;
|
||||
ans.sec = sec;
|
||||
fixdms(ans);
|
||||
fixdeg(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_add(a, b)
|
||||
define deg_add(a, b)
|
||||
{
|
||||
local obj dms ans;
|
||||
local obj deg ans;
|
||||
|
||||
ans.deg = 0;
|
||||
ans.min = 0;
|
||||
@@ -66,14 +66,14 @@ define dms_add(a, b)
|
||||
ans.sec += b.sec;
|
||||
} else
|
||||
ans.deg += b;
|
||||
fixdms(ans);
|
||||
fixdeg(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_neg(a)
|
||||
define deg_neg(a)
|
||||
{
|
||||
local obj dms ans;
|
||||
local obj deg ans;
|
||||
|
||||
ans.deg = -a.deg;
|
||||
ans.min = -a.min;
|
||||
@@ -82,15 +82,15 @@ define dms_neg(a)
|
||||
}
|
||||
|
||||
|
||||
define dms_sub(a, b)
|
||||
define deg_sub(a, b)
|
||||
{
|
||||
return a - b;
|
||||
}
|
||||
|
||||
|
||||
define dms_mul(a, b)
|
||||
define deg_mul(a, b)
|
||||
{
|
||||
local obj dms ans;
|
||||
local obj deg ans;
|
||||
|
||||
if (istype(a, ans) && istype(b, ans))
|
||||
quit "Cannot multiply degrees together";
|
||||
@@ -103,24 +103,24 @@ define dms_mul(a, b)
|
||||
ans.min = b.min * a;
|
||||
ans.sec = b.sec * a;
|
||||
}
|
||||
fixdms(ans);
|
||||
fixdeg(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_print(a)
|
||||
define deg_print(a)
|
||||
{
|
||||
print a.deg : 'd' : a.min : 'm' : a.sec : 's' :;
|
||||
}
|
||||
|
||||
|
||||
define dms_abs(a)
|
||||
define deg_abs(a)
|
||||
{
|
||||
return a.deg + a.min / 60 + a.sec / 3600;
|
||||
}
|
||||
|
||||
|
||||
define fixdms(a)
|
||||
define fixdeg(a)
|
||||
{
|
||||
a.min += frac(a.deg) * 60;
|
||||
a.deg = int(a.deg);
|
||||
@@ -134,5 +134,5 @@ define fixdms(a)
|
||||
}
|
||||
|
||||
if (config("resource_debug") & 3) {
|
||||
print "obj dms {deg, min, sec} defined";
|
||||
print "obj deg {deg, min, sec} defined";
|
||||
}
|
||||
|
384
cal/dms.cal
Normal file
384
cal/dms.cal
Normal file
@@ -0,0 +1,384 @@
|
||||
/*
|
||||
* dms - calculate in degrees, minutes, and seconds (based on deg)
|
||||
*
|
||||
* Copyright (C) 1999,2010 David I. Bell and Landon Curt Noll
|
||||
*
|
||||
* Calc is open software; you can redistribute it and/or modify it under
|
||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
||||
* Public License for more details.
|
||||
*
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: dms.cal,v 30.2 2010/09/02 06:14:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/dms.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:33
|
||||
* File existed as early as: before 1990
|
||||
*
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*/
|
||||
|
||||
|
||||
obj dms {deg, min, sec};
|
||||
|
||||
define dms(deg, min, sec)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* default missing args to 0 */
|
||||
if (isnull(sec)) {
|
||||
sec = 0;
|
||||
}
|
||||
if (isnull(min)) {
|
||||
min = 0;
|
||||
}
|
||||
|
||||
/* load object */
|
||||
ans.deg = deg;
|
||||
ans.min = min;
|
||||
ans.sec = sec;
|
||||
|
||||
/* return properly formed object */
|
||||
ans = fixdms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_add(a, b)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* initalize value to 1st arg */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is dms object, load it */
|
||||
ans.deg = a.deg;
|
||||
ans.min = a.min;
|
||||
ans.sec = a.sec;
|
||||
} else {
|
||||
/* 1st arg is not dms, assume scalar degrees */
|
||||
ans.deg = a;
|
||||
ans.min = 0;
|
||||
ans.sec = 0;
|
||||
}
|
||||
|
||||
/* add value of 2nd arg */
|
||||
if (istype(b, ans)) {
|
||||
/* 2nd arg is dms object, add it */
|
||||
ans.deg += b.deg;
|
||||
ans.min += b.min;
|
||||
ans.sec += b.sec;
|
||||
} else {
|
||||
/* 2nd arg is not dms, add scalar degrees */
|
||||
ans.deg += b;
|
||||
}
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixdms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_neg(a)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* negate argument */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is dms object, load it */
|
||||
ans.deg = -a.deg;
|
||||
ans.min = -a.min;
|
||||
ans.sec = -a.sec;
|
||||
} else {
|
||||
/* 2nd arg is not dms, negate scalar degrees */
|
||||
ans.deg = -a;
|
||||
ans.min = 0;
|
||||
ans.sec = 0;
|
||||
}
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixdms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_sub(a, b)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* initalize value to 1st arg */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is dms object, load it */
|
||||
ans.deg = a.deg;
|
||||
ans.min = a.min;
|
||||
ans.sec = a.sec;
|
||||
} else {
|
||||
/* 1st arg is not dms, assume scalar degrees */
|
||||
ans.deg = a;
|
||||
ans.min = 0;
|
||||
ans.sec = 0;
|
||||
}
|
||||
|
||||
/* subtract value of 2nd arg */
|
||||
if (istype(b, ans)) {
|
||||
/* 2nd arg is dms object, subtract it */
|
||||
ans.deg -= b.deg;
|
||||
ans.min -= b.min;
|
||||
ans.sec -= b.sec;
|
||||
} else {
|
||||
/* 2nd arg is not dms, subtract scalar degrees */
|
||||
ans.deg -= b;
|
||||
}
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixdms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_mul(a, b)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* dms object multiplication */
|
||||
if (istype(a, ans) && istype(b, ans)) {
|
||||
ans.deg = dms_abs(a) * dms_abs(b);
|
||||
ans.min = 0;
|
||||
ans.sec = 0;
|
||||
|
||||
/* scalar multiplication */
|
||||
} else if (istype(a, ans)) {
|
||||
ans.deg = a.deg * b;
|
||||
ans.min = a.min * b;
|
||||
ans.sec = a.sec * b;
|
||||
} else {
|
||||
ans.deg = b.deg * a;
|
||||
ans.min = b.min * a;
|
||||
ans.sec = b.sec * a;
|
||||
}
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixdms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_print(a)
|
||||
{
|
||||
local obj dms ans; /* temp object for dms type testing */
|
||||
|
||||
/* firewall - arg must be a dms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "dms_print called with non dms object";
|
||||
}
|
||||
|
||||
/* print in dms form */
|
||||
print a.deg : 'd' : a.min : 'm' : a.sec : 's' :;
|
||||
}
|
||||
|
||||
|
||||
define dms_abs(a)
|
||||
{
|
||||
local obj dms ans; /* temp object for dms type testing */
|
||||
local deg; /* return scalar value */
|
||||
|
||||
/* firewall - just absolute value non dms objects */
|
||||
if (! istype(a, ans)) {
|
||||
return abs(a);
|
||||
}
|
||||
|
||||
/* compute degrees */
|
||||
deg = a.deg + a.min / 60 + a.sec / 3600;
|
||||
|
||||
/* return degrees */
|
||||
return deg;
|
||||
}
|
||||
|
||||
|
||||
define dms_norm(a)
|
||||
{
|
||||
local obj dms ans; /* temp object for dms type testing */
|
||||
local deg; /* degrees */
|
||||
|
||||
/* firewall - arg must be a dms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "dms_norm called with non dms object";
|
||||
}
|
||||
|
||||
/* square degrees (norm is the square of absolute value */
|
||||
deg = dms_abs(a);
|
||||
|
||||
/* return degrees */
|
||||
return deg*deg;
|
||||
}
|
||||
|
||||
|
||||
define dms_test(a)
|
||||
{
|
||||
local obj dms ans; /* temp value */
|
||||
|
||||
/* firewall - arg must be a dms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "dms_test called with non dms object";
|
||||
}
|
||||
|
||||
/* return false of non-zero */
|
||||
ans = fixdms(a);
|
||||
if (ans.deg == 0 && ans.min == 0 && ans.sec == 0) {
|
||||
/* false */
|
||||
return 0;
|
||||
}
|
||||
/* true */
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
define dms_int(a)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* firewall - arg must be a dms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "dms_int called with non dms object";
|
||||
}
|
||||
|
||||
/* normalize the argument */
|
||||
ans = fixdms(a);
|
||||
|
||||
/* truncate to the nearest second */
|
||||
ans.sec = int(ans.sec);
|
||||
|
||||
/* return value to the nearest second */
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_frac(a)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* firewall - arg must be a dms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "dms_frac called with non dms object";
|
||||
}
|
||||
|
||||
/* normalize the argument */
|
||||
ans = fixdms(a);
|
||||
|
||||
/* remove all but fractional seconds */
|
||||
ans.deg = 0;
|
||||
ans.min = 0;
|
||||
ans.sec = frac(ans.sec);
|
||||
|
||||
/* return value to the second fraction */
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define dms_rel(a,b)
|
||||
{
|
||||
local abs_a, abs_b; /* scalars of the arguments */
|
||||
|
||||
/* compute scalars of the arguments */
|
||||
abs_a = dms_abs(a);
|
||||
abs_b = dms_abs(b);
|
||||
|
||||
/* return the comparison */
|
||||
return cmp(abs_a, abs_b);
|
||||
}
|
||||
|
||||
|
||||
define dms_cmp(a,b)
|
||||
{
|
||||
local abs_a, abs_b; /* scalars of the arguments */
|
||||
|
||||
/* compute scalars of the arguments */
|
||||
abs_a = dms_abs(a);
|
||||
abs_b = dms_abs(b);
|
||||
|
||||
/* return the equality comparison */
|
||||
return (abs_a == abs_b);
|
||||
}
|
||||
|
||||
|
||||
define dms_inc(a)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* increment a dms object */
|
||||
if (istype(a, ans)) {
|
||||
ans = a;
|
||||
++ans.sec;
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixdms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
/* increment a scalar */
|
||||
return a+1;
|
||||
}
|
||||
|
||||
|
||||
define dms_dec(a)
|
||||
{
|
||||
local obj dms ans; /* return value */
|
||||
|
||||
/* decrement a dms object */
|
||||
if (istype(a, ans)) {
|
||||
ans = a;
|
||||
--ans.sec;
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixdms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
/* decrement a scalar */
|
||||
return a-1;
|
||||
}
|
||||
|
||||
|
||||
define fixdms(a)
|
||||
{
|
||||
local obj dms ans; /* temp value */
|
||||
|
||||
/* firewall */
|
||||
if (! istype(a, ans)) {
|
||||
quit "attempt to fix a non dms object";
|
||||
}
|
||||
|
||||
/* force minutes to be intergral */
|
||||
a.min += frac(a.deg) * 60;
|
||||
a.deg = int(a.deg);
|
||||
|
||||
/* force degrees to be intergral */
|
||||
a.sec += frac(a.min) * 60;
|
||||
a.min = int(a.min);
|
||||
|
||||
/* carry excess seconds into minutes */
|
||||
a.min += a.sec // 60;
|
||||
a.sec %= 60;
|
||||
|
||||
/* carry excess minutes into degrees */
|
||||
a.deg += a.min // 60;
|
||||
a.min %= 60;
|
||||
|
||||
/* round degrees :-) */
|
||||
a.deg %= 360;
|
||||
|
||||
/* return normalized result */
|
||||
return a;
|
||||
}
|
||||
|
||||
if (config("resource_debug") & 3) {
|
||||
print "obj dms {deg, min, sec} defined";
|
||||
}
|
@@ -16,9 +16,9 @@
|
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: dotest.cal,v 29.2 2006/05/21 00:55:27 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/dotest.cal,v $
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: dotest.cal,v 30.2 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/dotest.cal,v $
|
||||
*
|
||||
* This file is not covered under version 2.1 of the GNU LGPL.
|
||||
*
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: ellip.cal,v 29.4 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/ellip.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: ellip.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/ellip.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:33
|
||||
* File existed as early as: before 1990
|
||||
|
107
cal/gvec.cal
Normal file
107
cal/gvec.cal
Normal file
@@ -0,0 +1,107 @@
|
||||
/*
|
||||
* gvec - vectorize any single-input function or trailing operator
|
||||
*
|
||||
* This version accepts arbitrary number of arguments, but of course
|
||||
* they must all be same length vectors.
|
||||
*
|
||||
* The gvec function is for use in either a two-arg function or a two-arg
|
||||
* operation "function" must be first; calc doesn't care how many more
|
||||
* arguments there actually are.
|
||||
*
|
||||
* @(#) $Revision: 30.3 $
|
||||
* @(#) $Id: gvec.cal,v 30.3 2011/05/23 23:00:55 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/gvec.cal,v $
|
||||
*
|
||||
* Under source code control: 2011/03/31 17:54:55
|
||||
* File existed as early as: 2010
|
||||
*
|
||||
* By Carl Witthoft carl at witthoft dot com
|
||||
*/
|
||||
|
||||
define gvec(function, vector)
|
||||
{
|
||||
local xlen,y,foo;
|
||||
local precx = 1e-50; /* default for now */
|
||||
local argc = param(0)-1;
|
||||
local old_tilde; /* previous config("tilde") */
|
||||
|
||||
/*
|
||||
* parse args
|
||||
*/
|
||||
local plist = mat[argc];
|
||||
if (config("resource_debug") & 8) {
|
||||
print "plist=", plist;
|
||||
print "argc=", argc;
|
||||
}
|
||||
for(local i = 0; i< argc; i++) {
|
||||
local ii = i + 2;
|
||||
if (config("resource_debug") & 8) {
|
||||
print "ii=", ii;
|
||||
print "param(" : ii : "}=", param(ii);
|
||||
print "size(param(" : ii : ")=", size(param(ii));
|
||||
}
|
||||
plist[i] = size(param(ii));
|
||||
}
|
||||
local slist=sort(plist);
|
||||
if (config("resource_debug") & 8) {
|
||||
print "plist=", plist;
|
||||
}
|
||||
local argm = argc-1;
|
||||
if (config("resource_debug") & 8) {
|
||||
print "argm=", argm;
|
||||
}
|
||||
if (slist[0] != slist[argm]) {
|
||||
quit "lengths don't match";
|
||||
}
|
||||
xlen = size(vector);
|
||||
y = mat[xlen];
|
||||
|
||||
/*
|
||||
* We can't do str(vector[j]) outside loop, eval() petulantly refuses to
|
||||
* look at local variables.
|
||||
*
|
||||
* Also we need to config("tilde",0) to turn off lead tilde
|
||||
* (so str(vector[j]) looks like a number.
|
||||
*/
|
||||
old_tilde = config("tilde",0);
|
||||
|
||||
/*
|
||||
* Ok, now check to see if "function" is a function. If not, it's an
|
||||
* operation and it's up to user to make it valid
|
||||
*/
|
||||
if (isdefined(function)) {
|
||||
|
||||
/* yep, it's a function, either builtin or user-defined */
|
||||
for (local j=0; j<xlen; j++) {
|
||||
|
||||
/* build the function call */
|
||||
foo = strcat(function, "(");
|
||||
for (local jj = 0; jj<argc; jj++) {
|
||||
foo = strcat(foo , str(param(jj+2)[j]), ",");
|
||||
}
|
||||
foo = strcat(foo, str(precx), ")");
|
||||
if (config("resource_debug") & 8) {
|
||||
print "foo=", foo;
|
||||
}
|
||||
y[j] = eval(foo);
|
||||
}
|
||||
|
||||
/*
|
||||
* it is an operator -- multi-argument operator makes no sense
|
||||
*/
|
||||
} else {
|
||||
if (argc > 1) {
|
||||
quit "Error: operator can accept only one argument";
|
||||
}
|
||||
for (j=0; j<xlen; j++) {
|
||||
foo = strcat(str(vector[j]), function);
|
||||
y[j] = eval(foo);
|
||||
}
|
||||
}
|
||||
|
||||
/* restore tilde mode if needed */
|
||||
config("tilde", old_tilde);
|
||||
|
||||
/* return result */
|
||||
return y;
|
||||
}
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: hello.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/hello.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: hello.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/hello.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/11/13 13:25:43
|
||||
* File existed as early as: 1996
|
||||
|
384
cal/hms.cal
Normal file
384
cal/hms.cal
Normal file
@@ -0,0 +1,384 @@
|
||||
/*
|
||||
* hms - calculate in hours, minutes, and seconds
|
||||
*
|
||||
* Copyright (C) 2010 Landon Curt Noll
|
||||
*
|
||||
* Calc is open software; you can redistribute it and/or modify it under
|
||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
||||
* Public License for more details.
|
||||
*
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: hms.cal,v 30.2 2010/09/02 06:14:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/hms.cal,v $
|
||||
*
|
||||
* Under source code control: 2010/09/01 17:14:55
|
||||
* File existed as early as: 2010
|
||||
*
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*/
|
||||
|
||||
|
||||
obj hms {hour, min, sec};
|
||||
|
||||
define hms(hour, min, sec)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* default missing args to 0 */
|
||||
if (isnull(sec)) {
|
||||
sec = 0;
|
||||
}
|
||||
if (isnull(min)) {
|
||||
min = 0;
|
||||
}
|
||||
|
||||
/* load object */
|
||||
ans.hour = hour;
|
||||
ans.min = min;
|
||||
ans.sec = sec;
|
||||
|
||||
/* return properly formed object */
|
||||
ans = fixhms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define hms_add(a, b)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* initalize value to 1st arg */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is hms object, load it */
|
||||
ans.hour = a.hour;
|
||||
ans.min = a.min;
|
||||
ans.sec = a.sec;
|
||||
} else {
|
||||
/* 1st arg is not hms, assume scalar hours */
|
||||
ans.hour = a;
|
||||
ans.min = 0;
|
||||
ans.sec = 0;
|
||||
}
|
||||
|
||||
/* add value of 2nd arg */
|
||||
if (istype(b, ans)) {
|
||||
/* 2nd arg is hms object, add it */
|
||||
ans.hour += b.hour;
|
||||
ans.min += b.min;
|
||||
ans.sec += b.sec;
|
||||
} else {
|
||||
/* 2nd arg is not hms, add scalar hours */
|
||||
ans.hour += b;
|
||||
}
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixhms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define hms_neg(a)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* negate argument */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is hms object, load it */
|
||||
ans.hour = -a.hour;
|
||||
ans.min = -a.min;
|
||||
ans.sec = -a.sec;
|
||||
} else {
|
||||
/* 2nd arg is not hms, negate scalar hours */
|
||||
ans.hour = -a;
|
||||
ans.min = 0;
|
||||
ans.sec = 0;
|
||||
}
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixhms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define hms_sub(a, b)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* initalize value to 1st arg */
|
||||
if (istype(a, ans)) {
|
||||
/* 1st arg is hms object, load it */
|
||||
ans.hour = a.hour;
|
||||
ans.min = a.min;
|
||||
ans.sec = a.sec;
|
||||
} else {
|
||||
/* 1st arg is not hms, assume scalar hours */
|
||||
ans.hour = a;
|
||||
ans.min = 0;
|
||||
ans.sec = 0;
|
||||
}
|
||||
|
||||
/* subtract value of 2nd arg */
|
||||
if (istype(b, ans)) {
|
||||
/* 2nd arg is hms object, subtract it */
|
||||
ans.hour -= b.hour;
|
||||
ans.min -= b.min;
|
||||
ans.sec -= b.sec;
|
||||
} else {
|
||||
/* 2nd arg is not hms, subtract scalar hours */
|
||||
ans.hour -= b;
|
||||
}
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixhms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define hms_mul(a, b)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* hms object multiplication */
|
||||
if (istype(a, ans) && istype(b, ans)) {
|
||||
ans.hour = hms_abs(a) * hms_abs(b);
|
||||
ans.min = 0;
|
||||
ans.sec = 0;
|
||||
|
||||
/* scalar multiplication */
|
||||
} else if (istype(a, ans)) {
|
||||
ans.hour = a.hour * b;
|
||||
ans.min = a.min * b;
|
||||
ans.sec = a.sec * b;
|
||||
} else {
|
||||
ans.hour = b.hour * a;
|
||||
ans.min = b.min * a;
|
||||
ans.sec = b.sec * a;
|
||||
}
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixhms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define hms_print(a)
|
||||
{
|
||||
local obj hms ans; /* temp object for hms type testing */
|
||||
|
||||
/* firewall - arg must be a hms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "hms_print called with non hms object";
|
||||
}
|
||||
|
||||
/* print in hms form */
|
||||
print a.hour : ':' : a.min : ':' : a.sec :;
|
||||
}
|
||||
|
||||
|
||||
define hms_abs(a)
|
||||
{
|
||||
local obj hms ans; /* temp object for hms type testing */
|
||||
local hour; /* return scalar value */
|
||||
|
||||
/* firewall - just absolute value non hms objects */
|
||||
if (! istype(a, ans)) {
|
||||
return abs(a);
|
||||
}
|
||||
|
||||
/* compute hours */
|
||||
hour = a.hour + a.min / 60 + a.sec / 3600;
|
||||
|
||||
/* return hours */
|
||||
return hour;
|
||||
}
|
||||
|
||||
|
||||
define hms_norm(a)
|
||||
{
|
||||
local obj hms ans; /* temp object for hms type testing */
|
||||
local hour; /* hours */
|
||||
|
||||
/* firewall - arg must be a hms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "hms_norm called with non hms object";
|
||||
}
|
||||
|
||||
/* square hours (norm is the square of absolute value */
|
||||
hour = hms_abs(a);
|
||||
|
||||
/* return hours */
|
||||
return hour*hour;
|
||||
}
|
||||
|
||||
|
||||
define hms_test(a)
|
||||
{
|
||||
local obj hms ans; /* temp value */
|
||||
|
||||
/* firewall - arg must be a hms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "hms_test called with non hms object";
|
||||
}
|
||||
|
||||
/* return false of non-zero */
|
||||
ans = fixhms(a);
|
||||
if (ans.hour == 0 && ans.min == 0 && ans.sec == 0) {
|
||||
/* false */
|
||||
return 0;
|
||||
}
|
||||
/* true */
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
define hms_int(a)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* firewall - arg must be a hms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "hms_int called with non hms object";
|
||||
}
|
||||
|
||||
/* normalize the argument */
|
||||
ans = fixhms(a);
|
||||
|
||||
/* truncate to the nearest second */
|
||||
ans.sec = int(ans.sec);
|
||||
|
||||
/* return value to the nearest second */
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define hms_frac(a)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* firewall - arg must be a hms object */
|
||||
if (! istype(a, ans)) {
|
||||
quit "hms_frac called with non hms object";
|
||||
}
|
||||
|
||||
/* normalize the argument */
|
||||
ans = fixhms(a);
|
||||
|
||||
/* remove all but fractional seconds */
|
||||
ans.hour = 0;
|
||||
ans.min = 0;
|
||||
ans.sec = frac(ans.sec);
|
||||
|
||||
/* return value to the second fraction */
|
||||
return ans;
|
||||
}
|
||||
|
||||
|
||||
define hms_rel(a,b)
|
||||
{
|
||||
local abs_a, abs_b; /* scalars of the arguments */
|
||||
|
||||
/* compute scalars of the arguments */
|
||||
abs_a = hms_abs(a);
|
||||
abs_b = hms_abs(b);
|
||||
|
||||
/* return the comparison */
|
||||
return cmp(abs_a, abs_b);
|
||||
}
|
||||
|
||||
|
||||
define hms_cmp(a,b)
|
||||
{
|
||||
local abs_a, abs_b; /* scalars of the arguments */
|
||||
|
||||
/* compute scalars of the arguments */
|
||||
abs_a = hms_abs(a);
|
||||
abs_b = hms_abs(b);
|
||||
|
||||
/* return the equality comparison */
|
||||
return (abs_a == abs_b);
|
||||
}
|
||||
|
||||
|
||||
define hms_inc(a)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* increment a hms object */
|
||||
if (istype(a, ans)) {
|
||||
ans = a;
|
||||
++ans.sec;
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixhms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
/* increment a scalar */
|
||||
return a+1;
|
||||
}
|
||||
|
||||
|
||||
define hms_dec(a)
|
||||
{
|
||||
local obj hms ans; /* return value */
|
||||
|
||||
/* decrement a hms object */
|
||||
if (istype(a, ans)) {
|
||||
ans = a;
|
||||
--ans.sec;
|
||||
|
||||
/* return normalized result */
|
||||
ans = fixhms(ans);
|
||||
return ans;
|
||||
}
|
||||
|
||||
/* decrement a scalar */
|
||||
return a-1;
|
||||
}
|
||||
|
||||
|
||||
define fixhms(a)
|
||||
{
|
||||
local obj hms ans; /* temp value */
|
||||
|
||||
/* firewall */
|
||||
if (! istype(a, ans)) {
|
||||
quit "attempt to fix a non hms object";
|
||||
}
|
||||
|
||||
/* force minutes to be intergral */
|
||||
a.min += frac(a.hour) * 60;
|
||||
a.hour = int(a.hour);
|
||||
|
||||
/* force hours to be intergral */
|
||||
a.sec += frac(a.min) * 60;
|
||||
a.min = int(a.min);
|
||||
|
||||
/* carry excess seconds into minutes */
|
||||
a.min += a.sec // 60;
|
||||
a.sec %= 60;
|
||||
|
||||
/* carry excess minutes into hours */
|
||||
a.hour += a.min // 60;
|
||||
a.min %= 60;
|
||||
|
||||
/* round hours by day */
|
||||
a.hour %= 24;
|
||||
|
||||
/* return normalized result */
|
||||
return a;
|
||||
}
|
||||
|
||||
if (config("resource_debug") & 3) {
|
||||
print "obj hms {hour, min, sec} defined";
|
||||
}
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: intfile.cal,v 29.5 2001/04/10 22:09:34 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/intfile.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: intfile.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/intfile.cal,v $
|
||||
*
|
||||
* Under source code control: 2001/03/31 08:13:11
|
||||
* File existed as early as: 2001
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/*
|
||||
* linear - perform a simple two point 2D linear interpolation
|
||||
*
|
||||
* Copyright (C) 2005-2007 Landon Curt Noll
|
||||
*
|
||||
* Calc is open software; you can redistribute it and/or modify it under
|
||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
||||
* Public License for more details.
|
||||
*
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: linear.cal,v 30.2 2007/03/17 05:57:42 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/linear.cal,v $
|
||||
*
|
||||
* Under source code control: 2005/12/12 06:41:50
|
||||
* File existed as early as: 2005
|
||||
*
|
||||
* chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*/
|
||||
|
||||
/*
|
||||
* linear - perform a simple two point 2D linear interpolation
|
||||
*
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.6 $
|
||||
* @(#) $Id: lucas.cal,v 29.6 2002/07/10 09:43:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/lucas.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: lucas.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/lucas.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/05/03 16:49:51
|
||||
* File existed as early as: 1990
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: lucas_chk.cal,v 29.3 2001/03/31 13:31:34 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/lucas_chk.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: lucas_chk.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/lucas_chk.cal,v $
|
||||
*
|
||||
* Under source code control: 1991/01/11 05:41:43
|
||||
* File existed as early as: 1991
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: lucas_tbl.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/lucas_tbl.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: lucas_tbl.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/lucas_tbl.cal,v $
|
||||
*
|
||||
* Under source code control: 1991/01/26 02:43:43
|
||||
* File existed as early as: 1991
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: mersenne.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/mersenne.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: mersenne.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/mersenne.cal,v $
|
||||
*
|
||||
* Under source code control: 1991/05/22 21:56:36
|
||||
* File existed as early as: 1991
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: mfactor.cal,v 29.3 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/mfactor.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: mfactor.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/mfactor.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/07/06 06:09:40
|
||||
* File existed as early as: 1996
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: mod.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/mod.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: mod.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/mod.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:34
|
||||
* File existed as early as: before 1990
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: natnumset.cal,v 29.3 2006/05/01 19:19:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/natnumset.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: natnumset.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/natnumset.cal,v $
|
||||
*
|
||||
* Under source code control: 1997/09/07 23:53:51
|
||||
* File existed as early as: 1997
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: pell.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/pell.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: pell.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/pell.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:34
|
||||
* File existed as early as: before 1990
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: pi.cal,v 29.5 2004/02/23 14:04:01 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/pi.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: pi.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/pi.cal,v $
|
||||
*
|
||||
* Under source code control: 1991/05/22 21:56:37
|
||||
* File existed as early as: 1991
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: pix.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/pix.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: pix.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/pix.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/07/09 03:14:14
|
||||
* File existed as early as: 1996
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: pollard.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/pollard.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: pollard.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/pollard.cal,v $
|
||||
*
|
||||
* Under source code control: 1991/05/22 21:56:37
|
||||
* File existed as early as: 1991
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: poly.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/poly.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: poly.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/poly.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:35
|
||||
* File existed as early as: before 1990
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: prompt.cal,v 29.3 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/prompt.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: prompt.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/prompt.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/12/18 04:43:25
|
||||
* File existed as early as: 1995
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: psqrt.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/psqrt.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: psqrt.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/psqrt.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:35
|
||||
* File existed as early as: before 1990
|
||||
|
@@ -18,11 +18,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: qtime.cal,v 29.4 2000/12/18 10:18:40 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/qtime.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: qtime.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/qtime.cal,v $
|
||||
*
|
||||
* Under source code control: 1999/10/13 04:10:33
|
||||
* File existed as early as: 1999
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: quat.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/quat.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: quat.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/quat.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:35
|
||||
* File existed as early as: before 1990
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: randbitrun.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/randbitrun.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: randbitrun.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/randbitrun.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/02/13 03:43:11
|
||||
* File existed as early as: 1995
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: randmprime.cal,v 29.3 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/randmprime.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: randmprime.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/randmprime.cal,v $
|
||||
*
|
||||
* Under source code control: 1994/03/14 23:11:21
|
||||
* File existed as early as: 1994
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: randombitrun.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/randombitrun.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: randombitrun.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/randombitrun.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/02/13 03:43:11
|
||||
* File existed as early as: 1995
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: randomrun.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/randomrun.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: randomrun.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/randomrun.cal,v $
|
||||
*
|
||||
* Under source code control: 1997/02/19 03:35:59
|
||||
* File existed as early as: 1997
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: randrun.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/randrun.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: randrun.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/randrun.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/02/12 20:00:06
|
||||
* File existed as early as: 1995
|
||||
|
373
cal/regress.cal
373
cal/regress.cal
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.36 $
|
||||
* @(#) $Id: regress.cal,v 29.36 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/regress.cal,v $
|
||||
* @(#) $Revision: 30.7 $
|
||||
* @(#) $Id: regress.cal,v 30.7 2013/08/11 02:57:22 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/regress.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:36
|
||||
* File existed as early as: before 1990
|
||||
@@ -596,12 +596,18 @@ print '012: parsed squarecheck(a, b, str)';
|
||||
define powercheck(a, p1, p2, str)
|
||||
{
|
||||
local a1, a2, a3;
|
||||
local b1, b2, b3;
|
||||
|
||||
a1 = (a^p1)^p2;
|
||||
a2 = (a^p2)^p1;
|
||||
a3 = a^(p1*p2);
|
||||
b1 = (a**p1)**p2;
|
||||
b2 = (a**p2)**p1;
|
||||
b3 = a**(p1*p2);
|
||||
if (a1 != a2) {print '**** (a^p1)^p2 != (a^p2)^p1:', str; ++prob;}
|
||||
if (a1 != a3) {print '**** (a^p1)^p2 != a^(p1*p2):', str; ++prob;}
|
||||
if (b1 != b2) {print '**** (b^p1)^p2 != (b^p2)^p1:', str; ++prob;}
|
||||
if (b1 != b3) {print '**** (b^p1)^p2 != b^(p1*p2):', str; ++prob;}
|
||||
print str;
|
||||
}
|
||||
print '013: parsed powercheck(a, p1, p2, str)';
|
||||
@@ -1406,7 +1412,39 @@ define test_functions()
|
||||
vrfy(isnum(systime()), '1206: isnum(systime())');
|
||||
vrfy(isnum(usertime()), '1207: isnum(usertime())');
|
||||
|
||||
print '1208: Ending test_functions';
|
||||
/* more jacobi tests */
|
||||
vrfy(jacobi(987897,987) == 0, '1208: jacobi(987897,987) == 0');
|
||||
vrfy(jacobi(897,987) == 0, '1209: jacobi(897,987) == 0');
|
||||
vrfy(jacobi(987,897) == 0, '1210: jacobi(987,897) == 0');
|
||||
vrfy(jacobi(90,897) == 0, '1211: jacobi(90,897) == 0');
|
||||
vrfy(jacobi(45,897) == 0, '1212: jacobi(45,897) == 0');
|
||||
vrfy(jacobi(897,45) == 0, '1213: jacobi(897,45) == 0');
|
||||
vrfy(jacobi(42,45) == 0, '1214: jacobi(42,45) == 0');
|
||||
vrfy(jacobi(21,45) == 0, '1215: jacobi(21,45) == 0');
|
||||
vrfy(jacobi(45,21) == 0, '1216: jacobi(45,21) == 0');
|
||||
vrfy(jacobi(3,21) == 0, '1217: jacobi(3,21) == 0');
|
||||
vrfy(jacobi(0,21) == 0, '1218: jacobi(0,21) == 0');
|
||||
vrfy(jacobi(0,20003) == 0, '1219: jacobi(0,20003) == 0');
|
||||
vrfy(jacobi(1,20003) == 1, '1220: jacobi(1,20003) == 1');
|
||||
vrfy(jacobi(1236,20003) == 1, '1221: jacobi(1236,20003) == 1');
|
||||
vrfy(jacobi(618,20003) == -1, '1222: jacobi(618,20003) == -1');
|
||||
vrfy(jacobi(309,20003) == 1, '1223: jacobi(309,20003) == 1');
|
||||
vrfy(jacobi(227,309) == 1, '1224: jacobi(227,309) == 1');
|
||||
vrfy(jacobi(82,227) == 1, '1225: jacobi(82,227) == 1');
|
||||
vrfy(jacobi(41,227) == -1, '1226: jacobi(41,227) == -1');
|
||||
vrfy(jacobi(22,41) == -1, '1227: jacobi(22,41) == -1');
|
||||
vrfy(jacobi(11,41) == -1, '1228: jacobi(11,41) == -1');
|
||||
vrfy(jacobi(8,11) == -1, '1229: jacobi(8,11) == -1');
|
||||
vrfy(jacobi(4,11) == 1, '1230: jacobi(4,11) == 1');
|
||||
vrfy(jacobi(2,11) == -1, '1231: jacobi(2,11) == -1');
|
||||
vrfy(jacobi(1,11) == 1, '1232: jacobi(1,11) == 1');
|
||||
vrfy(jacobi(0,11) == 0, '1233: jacobi(0,11) == 0');
|
||||
vrfy(jacobi(0,0) == 0, '1234: jacobi(0,0) == 0');
|
||||
vrfy(jacobi(-1,0) == 0, '1235: jacobi(-1,0) == 0');
|
||||
vrfy(jacobi(-1,-1) == 0, '1236: jacobi(-1,-1) == 0');
|
||||
vrfy(jacobi(0,-1) == 0, '1237: jacobi(0,-1) == 0');
|
||||
|
||||
print '1238: Ending test_functions';
|
||||
}
|
||||
print '017: parsed test_functions()';
|
||||
|
||||
@@ -2700,11 +2738,24 @@ define test_2600()
|
||||
vrfy(log(1e127) == 127,
|
||||
strcat(str(tnum++), ': log(1e127)) == 127'));
|
||||
vrfy(round(log(17^47),10) == 57.8310993048,
|
||||
strcat(str(tnum++),
|
||||
': round(log(17^47),10) == 57.8310993048'));
|
||||
strcat(str(tnum++),
|
||||
': round(log(17^47),10) == 57.8310993048'));
|
||||
vrfy(round(log(127),10) == 2.103803721,
|
||||
strcat(str(tnum++),
|
||||
': round(log(127),10) == 2.103803721'));
|
||||
strcat(str(tnum++),
|
||||
': round(log(127),10) == 2.103803721'));
|
||||
vrfy(round(log(0.25,0.00001),5) == -0.60206,
|
||||
strcat(str(tnum++),
|
||||
': round(log(0.25,0.00001),5) == -0.60206'));
|
||||
vrfy(round(log(0.25,1e-10),10) == -0.6020599913,
|
||||
strcat(str(tnum++),
|
||||
': round(log(0.25,1e-10),10) == -0.6020599913'));
|
||||
vrfy(round( log(1.2+1.2i,1e-5),5) == 0.2297+0.34109i,
|
||||
strcat(str(tnum++),
|
||||
': round(log(1.2+1.2i,1e-5),5) == 0.2297+0.34109i'));
|
||||
vrfy(round( log(1.2+1.2i,1e-10),10) == 0.2296962439+0.3410940885i,
|
||||
strcat(str(tnum++),
|
||||
': round(log(1.2+1.2i,1e-10),10) == ',
|
||||
'0.2296962439+0.3410940885i'));
|
||||
epsilon(i),;
|
||||
print tnum++: ': epsilon(i),;';
|
||||
|
||||
@@ -3259,7 +3310,7 @@ define test_error()
|
||||
'3654: scale(3,2^31) == error(10034)');
|
||||
vrfy("x" ^ 3 == error(10035), '3655: "x" ^ 3 == error(10035)');
|
||||
vrfy(2 ^ "x" == error(10036), '3656: 2 ^ "x" == error(10036)');
|
||||
vrfy(2 ^ 2.5 == error(10036), '3657: 2 ^ 2.5 == error(10036)');
|
||||
vrfy(2 ^ "2" == error(10036), '3657: 2 ^ "2" == error(10036)');
|
||||
vrfy(power("x",2.1) == error(10037),
|
||||
'3658: power("x",2.1) == error(10037)');
|
||||
vrfy(power(2,"x") == error(10038),
|
||||
@@ -5320,7 +5371,7 @@ define test_is()
|
||||
local nerr; /* new error value */
|
||||
local odd; /* odd integer */
|
||||
local even; /* even integer that is 10 times odd */
|
||||
local hash; /* sha hash value */
|
||||
local hash; /* sha1 hash value */
|
||||
local id; /* identity matrix */
|
||||
local list; /* list value */
|
||||
local matrix; /* non-identity matrix */
|
||||
@@ -5375,8 +5426,8 @@ define test_is()
|
||||
print '5911: odd = 23209';
|
||||
even = odd*10;
|
||||
print '5912: even = odd*10';
|
||||
hash = sha();
|
||||
print '5913: hash = sha()';
|
||||
hash = sha1();
|
||||
print '5913: hash = sha1()';
|
||||
mat id[3,3] = {1,0,0,0,1,0,0,0,1};
|
||||
print '5914: id[3,3] = {1,0,0,0,1,0,0,0,1}';
|
||||
list = list(2,3,4);
|
||||
@@ -5699,7 +5750,7 @@ define test_is()
|
||||
vrfy(ishash(nerr) == 0, '6178: ishash(nerr) == 0');
|
||||
vrfy(ishash(odd) == 0, '6179: ishash(odd) == 0');
|
||||
vrfy(ishash(even) == 0, '6180: ishash(even) == 0');
|
||||
vrfy(ishash(hash) == 1, '6181: ishash(hash) == 1');
|
||||
vrfy(ishash(hash) == 2, '6181: ishash(hash) == 2');
|
||||
vrfy(ishash(id) == 0, '6182: ishash(id) == 0');
|
||||
vrfy(ishash(list) == 0, '6183: ishash(list) == 0');
|
||||
vrfy(ishash(matrix) == 0, '6184: ishash(matrix) == 0');
|
||||
@@ -6792,108 +6843,6 @@ define test_blkprintf()
|
||||
print '172: parsed test_blkprintf()';
|
||||
|
||||
|
||||
/*
|
||||
* test_sha - test the sha hash
|
||||
*/
|
||||
define test_sha()
|
||||
{
|
||||
local a, b, c, d, e, f, x, y, z, L, M, B1, B2, B;
|
||||
|
||||
print '7100: Beginning test_sha';
|
||||
y = sha();
|
||||
print '7101: y = sha();';
|
||||
z = sha();
|
||||
print '7102: z = sha();';
|
||||
vrfy(y == z, '7103: y == z');
|
||||
vrfy(sha("") == y, '7104: sha("") == y');
|
||||
y = sha(y,1);
|
||||
print '7105: y = sha(y,1);';
|
||||
vrfy(y == sha(1), '7106: y == sha(1)');
|
||||
vrfy(sha(y,2) == sha(1,2), '7107: sha(y,2) == sha(1,2)');
|
||||
|
||||
vrfy(sha(sha()) == 0xf96cea198ad1dd5617ac084a3d92c6107708c0ef,
|
||||
'7108: sha(sha()) == 0xf96cea198ad1dd5617ac084a3d92c6107708c0ef');
|
||||
|
||||
vrfy(sha(sha("a"))==0x37f297772fae4cb1ba39b6cf9cf0381180bd62f2,
|
||||
'7109: sha(sha("a"))==0x37f297772fae4cb1ba39b6cf9cf0381180bd62f2');
|
||||
|
||||
vrfy(sha(sha("ab"))==0x488373d362684af3d3f7a6a408b59dfe85419e09,
|
||||
'7110: sha(sha("ab"))==0x488373d362684af3d3f7a6a408b59dfe85419e09');
|
||||
vrfy(sha(sha("abc"))==0x0164b8a914cd2a5e74c4f7ff082c4d97f1edf880,
|
||||
'7111: sha(sha("abc"))==0x0164b8a914cd2a5e74c4f7ff082c4d97f1edf880');
|
||||
vrfy(sha(sha("abcd"))==0x082c73b06f71185d840fb4b28eb3abade67714bc,
|
||||
'7112: sha(sha("abcd"))==0x082c73b06f71185d840fb4b28eb3abade67714bc');
|
||||
vrfy(sha(sha("abcde"))==0xd624e34951bb800f0acae773001df8cffe781ba8,
|
||||
'7113: sha(sha("abcde"))==0xd624e34951bb800f0acae773001df8cffe781ba8');
|
||||
vrfy(sha(sha("abcdef"))==0x2a589f7750598dc0ea0a608719e04327f609279a,
|
||||
'7114: sha(sha("abcdef"))==0x2a589f7750598dc0ea0a608719e04327f609279a');
|
||||
vrfy(sha(sha("abcdefg"))==0x5bdf01f9298e9d19d3f8d15520fd74eed600b497,
|
||||
'7115: sha(sha("abcdefg"))==0x5bdf01f9298e9d19d3f8d15520fd74eed600b497');
|
||||
vrfy(sha(sha("abcdefgh"))==0x734ba8b31975d0dbae4d6e249f4e8da270796c94,
|
||||
'7116: sha(sha("abcdefgh"))==0x734ba8b31975d0dbae4d6e249f4e8da270796c94');
|
||||
|
||||
vrfy(sha(sha(1)) == 0x864c8d09e828c7c31d62693736a5a9302c282777,
|
||||
'7117: sha(sha(1)) == 0x864c8d09e828c7c31d62693736a5a9302c282777');
|
||||
|
||||
vrfy(sha(sha(2)) == 0x2c0b59c512cb20fad6bb0883b69c9f5a46545808,
|
||||
'7118: sha(sha(2)) == 0x2c0b59c512cb20fad6bb0883b69c9f5a46545808');
|
||||
|
||||
vrfy(sha(sha(22/7))==0x7ddb7f8a7e9d70757f157744fddea7a6c6a6bcc6,
|
||||
'7119: sha(sha(22/7)==0x7ddb7f8a7e9d70757f157744fddea7a6c6a6bcc6');
|
||||
vrfy(sha(sha(isqrt(2e1000))) ==
|
||||
0x6db8d9cf0b018b8f9cbbf5aa1edb8066d19e1bb0,
|
||||
'7120: sha(sha(isqrt(2e1000)==0x6db8d9cf0b018b8f9cbbf5aa1edb8066d19e1bb0');
|
||||
vrfy(sha("x", "y", "z") == sha("xyz"),
|
||||
'7121: sha("x", "y", "z") == sha("xyz")');
|
||||
|
||||
vrfy(sha(sha("this is", 7^19-8, "a composit", 3i+4.5, "hash")) ==
|
||||
0x21e42319a26787046c2b28b7ae70f1b54bf0ba2a,
|
||||
'7122: sha(sha("this is", 7^19-8, ..., "hash")) == 0x21e4...');
|
||||
|
||||
z = sha(list(1,2,3), "curds and whey", 2^21701-1, pi(1e-100));
|
||||
print '7123: z = sha(list(1,2,3), "curds and whey", 2^21701-1, pi(1e-100));';
|
||||
vrfy(sha(z) == 257075527903934749824451356785709876382198951165,
|
||||
'7124: sha(z) == 257075527903934749824451356785709876382198951165');
|
||||
|
||||
y = sha();
|
||||
print '7125: y = sha()';
|
||||
y = sha(y, list(1,2,3), "curds and whey");
|
||||
print '7126: y = sha(y, list(1,2,3), "curds and whey")';
|
||||
y = sha(y, 2^21701-1);
|
||||
print '7127: y = sha(y, 2^21701-1)';
|
||||
y = sha(y, pi(1e-100));
|
||||
print '7128: y = sha(y, pi(1e-100))';
|
||||
vrfy(y == z, '7129: y == z');
|
||||
|
||||
B = blk() = {"a", "b", "c"};
|
||||
print '7130: B = blk() = {"a", "b", "c"};';
|
||||
vrfy(sha(B) == sha("abc"), '7131: sha(B) == sha("abc")');
|
||||
|
||||
B1 = blk() = {1,2,3,4};
|
||||
print '7132: B1 = blk() = {1,2,3,4};';
|
||||
B2 = blk() = {5,6,7,8};
|
||||
print '7133: B2 = blk() = {5,6,7,8};';
|
||||
B = blk() = {1,2,3,4,5,6,7,8};
|
||||
print '7134: B = blk() = {1,2,3,4,5,6,7,8};';
|
||||
|
||||
vrfy(sha(B1, B2) == sha(B), '7135: sha(B1, B2) == sha(B)');
|
||||
vrfy(sha(B[1], B[3], B[5]) == sha("\02\04\06"),
|
||||
'7136: sha(B[1], B[3], B[5]) == sha("\02\04\06")');
|
||||
|
||||
L = list(1,2,3);
|
||||
print '7137: L = list(1,2,3)';
|
||||
mat M[3] = {4,5,6};
|
||||
print '7138: mat M[3] = {4,5,6}';
|
||||
vrfy(sha(sha(L), M, B) == sha(L, M, B),
|
||||
'7139: sha(sha(L), M, B) == sha(L, M, B)');
|
||||
vrfy(sha(sha(L,M), B) == sha(L, M, B),
|
||||
'7140: sha(sha(L, M), B) == sha(L, M, B)');
|
||||
|
||||
print '7141: Ending test_sha';
|
||||
}
|
||||
print '173: parsed test_sha()';
|
||||
|
||||
|
||||
/*
|
||||
* test_sha1 - test the sha1 hash
|
||||
*/
|
||||
@@ -6979,88 +6928,6 @@ define test_sha1()
|
||||
print '174: parsed test_sha1()';
|
||||
|
||||
|
||||
/*
|
||||
* test_md5 - test the md5 hash
|
||||
*/
|
||||
define test_md5()
|
||||
{
|
||||
local a, b, c, d, e, f, x, y, z, L, M, B;
|
||||
|
||||
print '7300: Beginning test_md5';
|
||||
y = md5();
|
||||
print '7301: y = md5();';
|
||||
z = md5();
|
||||
print '7302: z = md5();';
|
||||
vrfy(y == z, '7303: y == z');
|
||||
y = md5(y,1);
|
||||
print '7304: y = md5(y,1);';
|
||||
z = md5(1);
|
||||
print '7305: z = md5(1);';
|
||||
vrfy(y == z, '7306: y == z');
|
||||
vrfy(md5(z,2) == md5(1,2), '7307: md5(z,2) == md5(1,2)');
|
||||
|
||||
vrfy(md5(md5()) == 0xd41d8cd98f00b204e9800998ecf8427e,
|
||||
'7308: md5(md5()) == 0xd41d8cd98f00b204e9800998ecf8427e');
|
||||
vrfy(md5("x", "y", "z") == md5("xyz"),
|
||||
'7309: md5("x", "y", "z") == md5("xyz")');
|
||||
|
||||
vrfy(md5(md5("this is", 7^19-8, "a composit", 3i+4.5, "hash")) ==
|
||||
0x39a5a8e24a2eb65a51af462c8bdd5e3,
|
||||
'7310: md5(md5("this is", 7^19-8, "a composit", 3i+4.5, "hash")) == ...');
|
||||
|
||||
|
||||
z = md5(list(1,2,3), "curds and whey", 2^21701-1, pi(1e-100));
|
||||
print '7311: z = md5(list(1,2,3), "curds and whey", 2^21701-1, pi(1e-100));';
|
||||
vrfy(md5(z) == 0x487462e577eabef0302dd13af6632546,
|
||||
'7312: md5(z) == 0x487462e577eabef0302dd13af6632546');
|
||||
y = md5();
|
||||
print '7313: y = md5();';
|
||||
y = md5(y, list(1,2,3), "curds and whey");
|
||||
print '7314: y = md5(y, list(1,2,3), "curds and whey")';
|
||||
y = md5(y, 2^21701-1);
|
||||
print '7315: y = md5(y, 2^21701-1);';
|
||||
y = md5(y, pi(1e-100));
|
||||
print '7316: y = md5(y, pi(1e-100));';
|
||||
vrfy(y == z, '7317: y == z');
|
||||
|
||||
vrfy(md5(md5("a")) == 0x0cc175b9c0f1b6a831c399e269772661,
|
||||
'7318: md5(md5("a")) == 0x0cc175b9c0f1b6a831c399e269772661');
|
||||
vrfy(md5(md5("ab")) == 0x187ef4436122d1cc2f40dc2b92f0eba0,
|
||||
'7319: md5(md5("ab")) == 0x187ef4436122d1cc2f40dc2b92f0eba0');
|
||||
vrfy(md5(md5("abc")) == 0x900150983cd24fb0d6963f7d28e17f72,
|
||||
'7320: md5(md5("abc")) == 0x900150983cd24fb0d6963f7d28e17f72');
|
||||
vrfy(md5(md5("abcd")) == 0xe2fc714c4727ee9395f324cd2e7f331f,
|
||||
'7321: md5(md5("abcd")) == 0xe2fc714c4727ee9395f324cd2e7f331f');
|
||||
vrfy(md5(md5("abcde")) == 0xab56b4d92b40713acc5af89985d4b786,
|
||||
'7322: md5(md5("abcde")) == 0xab56b4d92b40713acc5af89985d4b786');
|
||||
vrfy(md5(md5("abcdef")) == 0xe80b5017098950fc58aad83c8c14978e,
|
||||
'7323: md5(md5("abcdef")) == 0xe80b5017098950fc58aad83c8c14978e');
|
||||
vrfy(md5(md5("abcdefg")) == 0x7ac66c0f148de9519b8bd264312c4d64,
|
||||
'7324: md5(md5("abcdefg")) == 0x7ac66c0f148de9519b8bd264312c4d64');
|
||||
vrfy(md5(md5("abcdefgh")) == 0xe8dc4081b13434b45189a720b77b6818,
|
||||
'7325: md5(md5("abcdefgh")) == 0xe8dc4081b13434b45189a720b77b6818');
|
||||
vrfy(md5(md5(1)) == 0x44fe7987067ac45311c88772038f60d1,
|
||||
'7326: md5(md5(1)) == 0x44fe7987067ac45311c88772038f60d1');
|
||||
vrfy(md5(md5(22/7)) == 0x9274b951e1dfb9cba22af1c127daa8e7,
|
||||
'7327: md5(md5(22/7) == 0x9274b951e1dfb9cba22af1c127daa8e7');
|
||||
vrfy(md5(md5(isqrt(2e1000))) == 0xe56ac4b8cad869e738a04fedc97058f3,
|
||||
'7328: md5(md5(isqrt(2e1000))) == 0xe56ac4b8cad869e738a04fedc97058f3');
|
||||
L = list(1,2,3);
|
||||
print '7329: L = list(1,2,3)';
|
||||
mat M[3] = {4,5,6};
|
||||
print '7330: mat M[3] = {4,5,6}';
|
||||
B = blk() = {7,8,9};
|
||||
print '7331: B = blk() = {7,8,9}';
|
||||
vrfy(md5(md5(L), M, B) == md5(L, M, B),
|
||||
'7332: md5(md5(L), M, B) == md5(L, M, B)');
|
||||
vrfy(md5(md5(L,M), B) == md5(L, M, B),
|
||||
'7333: md5(md5(L, M), B) == md5(L, M, B)');
|
||||
|
||||
print '7334: Ending test_md5';
|
||||
}
|
||||
print '175: parsed test_md5()';
|
||||
|
||||
|
||||
/*
|
||||
* The 7400's contain tests for saveval and dot. These tests are
|
||||
* done inline near the bottom.
|
||||
@@ -7593,6 +7460,85 @@ define test_somenew()
|
||||
print '190: parsed test_somenew()';
|
||||
|
||||
|
||||
/*
|
||||
* test_exponentiation - test new exponentiation functionaltiy
|
||||
*/
|
||||
define test_exponentiation()
|
||||
{
|
||||
local a;
|
||||
|
||||
print '8800: Starting test_somenew';
|
||||
|
||||
/* unexpected help file cases */
|
||||
vrfy(2^3 == 8, '8801: 2^3 == 8');
|
||||
vrfy(2.5 ^ 3.5 == power(2.5, 3.5),
|
||||
'8802: 2.5 ^ 3.5 == power(2.5, 3.5)');
|
||||
vrfy(2.5 ^ 2.718i == power(2.5, 2.718i),
|
||||
'8803: 2.5 ^ 2.718i == power(2.5, 2.718i)');
|
||||
vrfy(3i^4 == 81, '8804: 3i^4 == 81');
|
||||
vrfy(0.5i ^ 0.25 == power(0.5i, 0.25),
|
||||
'8804: 0.5i ^ 0.25 == power(0.5i, 0.25)');
|
||||
vrfy(3.13145i^0.30103i == power(3.13145i, 0.30103i),
|
||||
'8806: 3.13145i^0.30103i == power(3.13145i, 0.30103i)');
|
||||
|
||||
/* deal with some corner error cases */
|
||||
ecnt += 12;
|
||||
print '8807: ecnt += 2';
|
||||
vrfy((1/0) ^ -1 == 0, '8808: (1/0) ^ -1 == 0');
|
||||
vrfy((1/0) ^ -2 == 0, '8809: (1/0) ^ -2 == 0');
|
||||
vrfy((1/0) ^ 0 == error(10001), '8810: (1/0) ^ 0 == error(10001)');
|
||||
vrfy((1/0) ^ 3 == error(10001), '8811: (1/0) ^ 3 == error(10001)');
|
||||
vrfy(0 ^ -2 == error(10001), '8812: 0 ^ -2 == error(10001)');
|
||||
vrfy((1/0) ^ 1i == error(10001),'8813: (1/0) ^ 1i == error(10001)');
|
||||
vrfy((1/0) ^ 0i == error(10001),'8814: (1/0) ^ 0i == error(10001)');
|
||||
|
||||
/* real ^ real */
|
||||
vrfy(5^6 == 15625, '8815: 5^6 == 15625');
|
||||
vrfy(10^31 == 1e31, '8816: 10^31 == 1e31');
|
||||
vrfy(10 ^ (127/31) == power(10, 127/31),
|
||||
'8817: 10 ^ (127/31) == power(10, 127/31)');
|
||||
vrfy((10^31) ^ 10 == 1e310, '8818: (10^31) ^ 10 == 1e310');
|
||||
|
||||
/* complex ^ real */
|
||||
vrfy(10i ^ 10 == -1e10, '8819: 10i ^ 10 == -1e10');
|
||||
vrfy((-10i) ^ 10 == -1e10, '8820: (-10i) ^ 10 == -1e10');
|
||||
vrfy((1+1i) ^ 4 == -4, '8821: (1+1i) ^ 4 == -4');
|
||||
vrfy((1+1i) ^ 65536 == 2^32768, '8822: (1+1i) ^ 65536 == 2^32768');
|
||||
vrfy((1+1i) ^ (2^20) == 2^(2^19),
|
||||
'8823: (1+1i) ^ (2^20) == 2^(2^19)');
|
||||
vrfy((31+17i) ^ pi() == power(31+17i, pi()),
|
||||
'8824: (31+17i) ^ pi() == power(31+17i, pi()');
|
||||
vrfy((5+7i) ^ exp(5) == power(5+7i, exp(5)),
|
||||
'8825: (5+7i) ^ exp(5) == power(5+7i, exp(5))');
|
||||
|
||||
/* real ^ complex */
|
||||
vrfy(10 ^ 1i == power(10, 1i), '8826: 10 ^ 1i == power(10, 1i)');
|
||||
vrfy(10 ^ (2+3i) == power(10, 2+3i),
|
||||
'8827: 10 ^ (2+3i) == power(10, 2+3i)');
|
||||
vrfy(pi() ^ (2+3i) == power(pi(), 2+3i),
|
||||
'8828: pi() ^ (2+3i) == power(pi(), 2+3i)');
|
||||
vrfy(exp(64) ^ (2+3i) == power(exp(64), 2+3i),
|
||||
'8828: exp(64) ^ (2+3i) == power(exp(64), 2+3i)');
|
||||
vrfy(pi() ^ (257+127i) == power(pi(), 257+127i),
|
||||
'8829: pi() ^ (257+127i) == power(pi(), 257+127i)');
|
||||
vrfy(pi() ^ asin(-2) == power(pi(), asin(-2)),
|
||||
'8830: pi() ^ asin(-2) == power(pi(), asin(-2)');
|
||||
|
||||
/* complex ^ complex */
|
||||
vrfy((3+4i) ^ (2+3i) == power(3+4i, 2+3i),
|
||||
'8831: (3+4i) ^ (2+3i) == power(3+4i, 2+3i)');
|
||||
vrfy(ln(-10) ^ (2+3i) == power(ln(-10), 2+3i),
|
||||
'8832: ln(-10) ^ (2+3i) == power(ln(-10), 2+3i)');
|
||||
vrfy((pi()*1i) ^ asin(-2) == power(pi()*1i, asin(-2)),
|
||||
'8833: (pi()*1i) ^ asin(-2) == power(pi()*1i, asin(-2))');
|
||||
vrfy((exp(1)+pi()*1i) ^ asin(-2) == power(exp(1)+pi()*1i, asin(-2)),
|
||||
'8834: (exp(1)+pi()*1i) ^ asin(-2) == power(exp(1)+pi()*1i, asin(-2))');
|
||||
|
||||
print '8835: Ending test_somenew';
|
||||
}
|
||||
print '191: parsed test_exponentiation()';
|
||||
|
||||
|
||||
/*
|
||||
* test_quit - test the QUIT functionality
|
||||
*/
|
||||
@@ -7820,12 +7766,8 @@ return test_name();
|
||||
print;
|
||||
return test_blkprintf();
|
||||
print;
|
||||
return test_sha();
|
||||
print;
|
||||
return test_sha1();
|
||||
print;
|
||||
return test_md5();
|
||||
print;
|
||||
|
||||
print '7400: Beginning test_savedot';
|
||||
print '7401: saveval(1);';
|
||||
@@ -7964,6 +7906,27 @@ vrfy(dotest("set8700.line", 8703) == 0,
|
||||
/* 87xx: Ending dotest runs is printed by set8700.test */
|
||||
|
||||
|
||||
/*
|
||||
* new exponentiation functionaltiy
|
||||
*/
|
||||
print;
|
||||
return test_exponentiation();
|
||||
/* 88xx: test exponentiation */
|
||||
|
||||
|
||||
/*
|
||||
* calc resource functions by Christoph Zurnieden
|
||||
*/
|
||||
print;
|
||||
print '8900: Starting test of calc resource functions by Christoph Zurnieden';
|
||||
print '8901: read -once "test8900"';
|
||||
read -once "test8900";
|
||||
print '8902: about to run test8900(1,,8903)';
|
||||
testnum = test8900(1,,8903);
|
||||
print testnum: ": End of test of calc resource functions by Christoph Zurnieden";
|
||||
/* 89xx: test calc resource functions by Christoph Zurnieden */
|
||||
|
||||
|
||||
/*
|
||||
* read various calc resource files
|
||||
*
|
||||
@@ -8062,7 +8025,11 @@ print '9838: skipping read -once hello.cal because it is an infinite loop';
|
||||
print '9839: skipping read -once xx_print.cal because it is a printing demo';
|
||||
read -once sumtimes;
|
||||
print '9840: read -once sumtimes';
|
||||
print '9841: Ending read of selected calc resource files';
|
||||
read -once dms;
|
||||
print '9841: read -once dms';
|
||||
read -once hms;
|
||||
print '9842: read -once hms';
|
||||
print '9843: Ending read of selected calc resource files';
|
||||
|
||||
|
||||
/*
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: repeat.cal,v 29.4 2003/01/26 19:42:03 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/repeat.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: repeat.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/repeat.cal,v $
|
||||
*
|
||||
* Under source code control: 2003/01/05 00:00:01
|
||||
* File existed as early as: 2003
|
||||
|
@@ -15,9 +15,9 @@
|
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: screen.cal,v 29.2 2006/05/01 19:21:18 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/screen.cal,v $
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: screen.cal,v 30.2 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/screen.cal,v $
|
||||
*
|
||||
* This file is not covered under version 2.1 of the GNU LGPL.
|
||||
*
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: seedrandom.cal,v 29.3 2001/03/31 13:31:34 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/seedrandom.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: seedrandom.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/seedrandom.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/01/01 08:21:00
|
||||
* File existed as early as: 1996
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: set8700.cal,v 29.2 2006/08/20 16:16:11 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/set8700.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: set8700.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/set8700.cal,v $
|
||||
*
|
||||
* Under source code control: 2006/05/20 14:10:11
|
||||
* File existed as early as: 2006
|
||||
|
@@ -15,11 +15,11 @@
|
||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: set8700.line,v 29.4 2006/08/20 16:16:11 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/set8700.line,v $
|
||||
## @(#) $Revision: 30.1 $
|
||||
## @(#) $Id: set8700.line,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/bin/calc/cal/RCS/set8700.line,v $
|
||||
##
|
||||
## Under source code control: 2006/05/20 14:10:11
|
||||
## File existed as early as: 2006
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: solve.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/solve.cal,v $
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: solve.cal,v 30.2 2008/05/10 13:30:00 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/solve.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:37
|
||||
* File existed as early as: before 1990
|
||||
@@ -47,7 +47,7 @@ define solve(low, high, epsilon)
|
||||
if (abs(flow) < epsilon)
|
||||
return low;
|
||||
fhigh = f(high);
|
||||
if (abs(flow) < epsilon)
|
||||
if (abs(fhigh) < epsilon)
|
||||
return high;
|
||||
if (sgn(flow) == sgn(fhigh))
|
||||
quit "Non-opposite signs";
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: sumsq.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/sumsq.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: sumsq.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/sumsq.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:37
|
||||
* File existed as early as: before 1990
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: sumtimes.cal,v 29.2 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/sumtimes.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: sumtimes.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/sumtimes.cal,v $
|
||||
*
|
||||
* Under source code control: 2006/06/22 17:29
|
||||
* File existed as early as: 2006
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: surd.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/surd.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: surd.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/surd.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:38
|
||||
* File existed as early as: before 1990
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: test1700.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test1700.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test1700.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test1700.cal,v $
|
||||
*
|
||||
* Under source code control: 1994/03/14 23:12:51
|
||||
* File existed as early as: 1994
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: test2300.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test2300.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test2300.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test2300.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/07/09 06:12:13
|
||||
* File existed as early as: 1995
|
||||
|
105
cal/test2600.cal
105
cal/test2600.cal
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: test2600.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test2600.cal,v $
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: test2600.cal,v 30.2 2007/07/11 22:57:23 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test2600.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/10/13 00:13:14
|
||||
* File existed as early as: 1995
|
||||
@@ -313,6 +313,102 @@ define testpower(str, n, b, eps, verbose)
|
||||
}
|
||||
|
||||
|
||||
define testpower2(str, n, eps, verbose)
|
||||
{
|
||||
local i, a, c, m, min, max;
|
||||
local b;
|
||||
local num;
|
||||
local c2;
|
||||
local oldeps;
|
||||
|
||||
if (isnull(verbose)) verbose = 2;
|
||||
if (verbose > 0) {
|
||||
print str:":",:;
|
||||
}
|
||||
if (isnull(eps))
|
||||
eps = epsilon();
|
||||
oldeps = epsilon(eps);
|
||||
epsilon(eps),;
|
||||
if (!isnum(b))
|
||||
quit "Second argument (exponent) to be a number";
|
||||
min = 1000;
|
||||
max = -1000;
|
||||
for (i = 1; i <= n; i++) {
|
||||
if (verbose > 2) print i,:;
|
||||
|
||||
/* real ^ real */
|
||||
a = rand(1,1e20);
|
||||
a = a / (int(a/2)+rand(1,1e20));
|
||||
b = rand(1,1e20);
|
||||
b = b / (int(b/2)+rand(1,1e20));
|
||||
c = a ^ b;
|
||||
c2 = power(a, b);
|
||||
if (c != c2) {
|
||||
m++;
|
||||
if (verbose > 1) {
|
||||
printf("*** real^real failure for a = %d\n", a);
|
||||
}
|
||||
}
|
||||
|
||||
/* complex ^ real */
|
||||
a = rand(1,1e20);
|
||||
a = a / (int(a/2)+rand(1,1e20));
|
||||
b = rand(1,1e20);
|
||||
b = b / (int(b/2)+rand(1,1e20));
|
||||
c = (a*1i) ^ b;
|
||||
c2 = power(a*1i, b);
|
||||
if (c != c2) {
|
||||
m++;
|
||||
if (verbose > 1) {
|
||||
printf("*** comp^real failure for a = %d\n", a);
|
||||
}
|
||||
}
|
||||
|
||||
/* real ^ complex */
|
||||
a = rand(1,1e20);
|
||||
a = a / (int(a/2)+rand(1,1e20));
|
||||
b = rand(1,1e20);
|
||||
b = b / (int(b/2)+rand(1,1e20));
|
||||
c = a ^ (b*1i);
|
||||
c2 = power(a, b*1i);
|
||||
if (c != c2) {
|
||||
m++;
|
||||
if (verbose > 1) {
|
||||
printf("*** real^comp failure for a = %d\n", a);
|
||||
}
|
||||
}
|
||||
|
||||
/* complex ^ complex */
|
||||
a = rand(1,1e20);
|
||||
a = a / (int(a/2)+rand(1,1e20));
|
||||
b = rand(1,1e20);
|
||||
b = b / (int(b/2)+rand(1,1e20));
|
||||
c = (a*1i) ^ (b*1i);
|
||||
c2 = power(a*1i, b*1i);
|
||||
if (c != c2) {
|
||||
m++;
|
||||
if (verbose > 1) {
|
||||
printf("*** comp^comp failure for a = %d\n", a);
|
||||
}
|
||||
}
|
||||
}
|
||||
epsilon(oldeps),;
|
||||
if (verbose > 0) {
|
||||
if (m) {
|
||||
printf("*** %d error(s)\n", m);
|
||||
printf(" %s: rem/eps min=%d, max=%d\n",
|
||||
str, min, max);
|
||||
} else {
|
||||
printf("no errors\n");
|
||||
}
|
||||
}
|
||||
if (verbose > 1) {
|
||||
printf(" %s: rem/eps min=%0.4d, max=%0.4d\n", str, min, max);
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
|
||||
define cpow(a, b, eps) /* Find rem/eps for power(a,b,eps) */
|
||||
{
|
||||
local v, v1, c, n, d, h;
|
||||
@@ -504,6 +600,7 @@ define test2600(verbose, tnum)
|
||||
err += testsqrt(strcat(str(tnum++),": sqrt",str(i)), n*10,
|
||||
ep, verbose);
|
||||
}
|
||||
err += testpower2(strcat(str(tnum++),": power"), n*4, ep, verbose);
|
||||
if (verbose > 1) {
|
||||
if (err) {
|
||||
print "***", err, "error(s) found in test2600";
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: test2700.cal,v 29.4 2006/06/25 22:06:23 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test2700.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test2700.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test2700.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/11/01 22:52:25
|
||||
* File existed as early as: 1995
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: test3100.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test3100.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test3100.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test3100.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/11/28 11:56:57
|
||||
* File existed as early as: 1995
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: test3300.cal,v 29.5 2006/12/16 11:19:45 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test3300.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test3300.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test3300.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/12/02 04:27:41
|
||||
* File existed as early as: 1995
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: test3400.cal,v 29.3 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test3400.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test3400.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test3400.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/12/02 05:20:11
|
||||
* File existed as early as: 1995
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: test3500.cal,v 29.3 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test3500.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test3500.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test3500.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/12/18 22:50:46
|
||||
* File existed as early as: 1995
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: test4000.cal,v 29.4 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test4000.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test4000.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test4000.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/03/13 02:38:45
|
||||
* File existed as early as: 1996
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: test4100.cal,v 29.5 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test4100.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test4100.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test4100.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/03/13 03:53:22
|
||||
* File existed as early as: 1996
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: test4600.cal,v 29.5 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test4600.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test4600.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test4600.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/07/02 20:04:40
|
||||
* File existed as early as: 1996
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: test5100.cal,v 29.3 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test5100.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test5100.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test5100.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/12/02 23:57:10
|
||||
* File existed as early as: 1996
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: test5200.cal,v 29.3 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test5200.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test5200.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test5200.cal,v $
|
||||
*
|
||||
* Under source code control: 1997/02/07 02:48:10
|
||||
* File existed as early as: 1997
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: test8400.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test8400.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test8400.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test8400.cal,v $
|
||||
*
|
||||
* Under source code control: 1999/10/31 01:00:03
|
||||
* File existed as early as: 1999
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: test8500.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test8500.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test8500.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test8500.cal,v $
|
||||
*
|
||||
* Under source code control: 1999/11/12 20:59:59
|
||||
* File existed as early as: 1999
|
||||
|
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.1 $
|
||||
* @(#) $Id: test8600.cal,v 29.1 2000/12/04 19:57:02 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test8600.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: test8600.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/test8600.cal,v $
|
||||
*
|
||||
* Under source code control: 2000/12/04 19:57:02
|
||||
* File existed as early as: 2000
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: unitfrac.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/unitfrac.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: unitfrac.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/unitfrac.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:38
|
||||
* File existed as early as: before 1990
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: varargs.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/varargs.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: varargs.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/varargs.cal,v $
|
||||
*
|
||||
* Under source code control: 1991/05/22 21:56:34
|
||||
* File existed as early as: 1991
|
||||
|
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: xx_print.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/xx_print.cal,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: xx_print.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/cal/RCS/xx_print.cal,v $
|
||||
*
|
||||
* Under source code control: 1997/04/17 00:08:50
|
||||
* File existed as early as: 1997
|
||||
|
34
calc.c
34
calc.c
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* calc - arbitrary precision calculator
|
||||
*
|
||||
* Copyright (C) 1999-2007 David I. Bell, Landon Curt Noll and Ernest Bowen
|
||||
* Copyright (C) 1999-2013 David I. Bell, Landon Curt Noll and Ernest Bowen
|
||||
*
|
||||
* Primary author: David I. Bell
|
||||
*
|
||||
@@ -17,11 +17,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.16 $
|
||||
* @(#) $Id: calc.c,v 29.16 2007/02/18 14:24:56 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $
|
||||
* @(#) $Revision: 30.6 $
|
||||
* @(#) $Id: calc.c,v 30.6 2013/03/25 21:39:57 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/calc.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:11
|
||||
* File existed as early as: before 1990
|
||||
@@ -42,6 +42,7 @@
|
||||
|
||||
#if defined(_WIN32)
|
||||
# include <io.h>
|
||||
# if !defined(NOTCYGWIN)
|
||||
/*
|
||||
* getopt.h file is from the Cygwin GNU library
|
||||
*
|
||||
@@ -49,6 +50,7 @@
|
||||
* http://sources.redhat.com/cygwin/
|
||||
*/
|
||||
# include "../getopt/getopt.h"
|
||||
# endif
|
||||
# define strdup _strdup
|
||||
# define isatty _isatty
|
||||
#endif /* Windoz */
|
||||
@@ -90,6 +92,7 @@
|
||||
* S_FUNC definitions and functions
|
||||
*/
|
||||
S_FUNC void intint(int arg); /* interrupt routine */
|
||||
S_FUNC void calc_interrupt(char *fmt, ...);
|
||||
S_FUNC int nextcp(char **cpp, int *ip, int argc, char **argv, BOOL haveendstr);
|
||||
S_FUNC void set_run_state(run state);
|
||||
|
||||
@@ -245,8 +248,13 @@ main(int argc, char **argv)
|
||||
* call libcalc_call_me_last() -
|
||||
* nothing to cleanup
|
||||
*/
|
||||
printf("%s (version %s)\n",
|
||||
CALC_TITLE, version());
|
||||
fputs(CALC_TITLE, stdout);
|
||||
#if defined(CUSTOM)
|
||||
fputs(" w/custom functions", stdout);
|
||||
#else
|
||||
fputs(" w/o custom functions", stdout);
|
||||
#endif /* CUSTOM */
|
||||
printf(" (version %s)\n", version());
|
||||
exit(0);
|
||||
case 'D':
|
||||
/*
|
||||
@@ -479,6 +487,9 @@ main(int argc, char **argv)
|
||||
if (havecommands) {
|
||||
cmdbuf[cmdlen++] = '\n';
|
||||
cmdbuf[cmdlen] = '\0';
|
||||
if (fclose(stdin)) {
|
||||
perror("main(): fclose(stdin) failed:");
|
||||
}
|
||||
}
|
||||
|
||||
argc_value = argc - maxindex;
|
||||
@@ -717,7 +728,7 @@ intint(int UNUSED arg)
|
||||
{
|
||||
(void) signal(SIGINT, intint);
|
||||
if (inputwait || (++abortlevel >= ABORT_NOW)) {
|
||||
math_error("\nABORT");
|
||||
calc_interrupt("\nABORT");
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
if (abortlevel >= ABORT_MATH)
|
||||
@@ -727,11 +738,10 @@ intint(int UNUSED arg)
|
||||
|
||||
|
||||
/*
|
||||
* Routine called on any runtime error, to complain about it (with possible
|
||||
* arguments), and then longjump back to the top level command scanner.
|
||||
* report an interrupt
|
||||
*/
|
||||
void
|
||||
math_error(char *fmt, ...)
|
||||
static void
|
||||
calc_interrupt(char *fmt, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
|
9
calc.h
9
calc.h
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.22 $
|
||||
* @(#) $Id: calc.h,v 29.22 2007/02/18 14:24:56 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.h,v $
|
||||
* @(#) $Revision: 30.2 $
|
||||
* @(#) $Id: calc.h,v 30.2 2007/07/10 17:44:52 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/calc.h,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:31
|
||||
* File existed as early as: before 1990
|
||||
@@ -90,6 +90,7 @@
|
||||
#define ABORT_NOW 4 /* abort right away */
|
||||
|
||||
#define ERRMAX 20 /* default errmax value */
|
||||
#define E_OK 0 /* no error */
|
||||
|
||||
/*
|
||||
* File ids corresponding to standard in, out, error, and when not in use.
|
||||
|
34
calc.man
34
calc.man
@@ -13,10 +13,10 @@
|
||||
.\" A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
.\" distributed with calc under the filename COPYING-LGPL. You should have
|
||||
.\" received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
.\" 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
.\" 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
.\"
|
||||
.\" @(#) $Revision: 29.21 $
|
||||
.\" @(#) $Id: calc.man,v 29.21 2007/02/07 00:38:43 chongo Exp $
|
||||
.\" @(#) $Revision: 30.4 $
|
||||
.\" @(#) $Id: calc.man,v 30.4 2013/08/11 01:09:56 chongo Exp $
|
||||
.\" @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.man,v $
|
||||
.\"
|
||||
.\" Under source code control: 1991/07/23 05:48:26
|
||||
@@ -63,7 +63,7 @@ CALC OPTIONS
|
||||
|
||||
.TP
|
||||
.B \-c
|
||||
Continue reading command lines even after an scan/parse
|
||||
Continue reading command lines even after a scan/parse
|
||||
error has caused the abandonment of a line.
|
||||
Note that this option only deals with scanning and
|
||||
parsing of the calc language.
|
||||
@@ -225,7 +225,7 @@ filename
|
||||
.sp 1
|
||||
On systems that treat an executable that begins with
|
||||
.B #!
|
||||
as a script, the path of the execurable is appended by the kernel
|
||||
as a script, the path of the executable is appended by the kernel
|
||||
as the final argument to the exec() system call.
|
||||
This is why the
|
||||
.B \-f
|
||||
@@ -275,18 +275,14 @@ See
|
||||
.TP
|
||||
.B \-i
|
||||
Become interactive if possible.
|
||||
If
|
||||
.I calc_cmd
|
||||
args are given,
|
||||
.B calc
|
||||
by default, calc will execute them and exit.
|
||||
This flag causes
|
||||
.B calc
|
||||
to drop into interactive mode after the commands are executed.
|
||||
This flag will cause
|
||||
.B calc
|
||||
to drop into interactive mode after the
|
||||
commands are executed.
|
||||
.I calc_cmd
|
||||
arguments on the command line are evaluated.
|
||||
Without this flag,
|
||||
.B calc
|
||||
will exit after they are evaluated.
|
||||
.sp 1
|
||||
For example:
|
||||
.sp 1
|
||||
@@ -706,7 +702,7 @@ the rest of the file will be processed in
|
||||
.BR "shell script mode" .
|
||||
Note that
|
||||
.B \-f
|
||||
must at the end of the intiial ``#!'' line.
|
||||
must at the end of the initial ``#!'' line.
|
||||
Any other optional
|
||||
.B "other_flags"
|
||||
must come before
|
||||
@@ -1078,9 +1074,9 @@ If you do not have these files, write to:
|
||||
.in +0.5i
|
||||
.nf
|
||||
Free Software Foundation, Inc.
|
||||
59 Temple Place
|
||||
Suite 330
|
||||
Boston, MA 02111-1307
|
||||
51 Franklin Street
|
||||
Fifth Floor
|
||||
Boston, MA 02110-1301
|
||||
USA
|
||||
.fi
|
||||
.in -0.5i
|
||||
@@ -1200,7 +1196,7 @@ for more information about bug reporting.
|
||||
.SH "CALC WEB SITE"
|
||||
\&
|
||||
.br
|
||||
Landon Noll maintains the the
|
||||
Landon Noll maintains the
|
||||
.B calc
|
||||
web site is located at:
|
||||
.sp
|
||||
|
115
calc.spec.in
115
calc.spec.in
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# calc.spec.in - template specfile for calc
|
||||
#
|
||||
# Copyright (C) 2003-2005 Petteri Kettunen and Landon Curt Noll
|
||||
# Copyright (C) 2003-2013 Petteri Kettunen and Landon Curt Noll
|
||||
#
|
||||
# Calc is open software; you can redistribute it and/or modify it under
|
||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
||||
@@ -16,11 +16,11 @@
|
||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.16 $
|
||||
# @(#) $Id: calc.spec.in,v 29.16 2006/06/26 05:50:44 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.spec.in,v $
|
||||
# @(#) $Revision: 30.10 $
|
||||
# @(#) $Id: calc.spec.in,v 30.10 2013/05/05 11:57:44 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/bin/calc/RCS/calc.spec.in,v $
|
||||
#
|
||||
# Under source code control: 2003/02/16 20:21:39
|
||||
# File existed as early as: 2003
|
||||
@@ -37,14 +37,16 @@
|
||||
Summary: Arbitrary precision calculator.
|
||||
Name: calc
|
||||
Version: <<<PROJECT_VERSION>>>
|
||||
Release: 0
|
||||
Release: 10
|
||||
License: LGPL
|
||||
Group: Applications/Engineering
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
Source: http://www.isthe.com/chongo/src/calc/%{name}-%{version}.tar.bz2
|
||||
URL: http://www.isthe.com/chongo/tech/comp/calc/index.html
|
||||
Requires: ncurses >= 5.2-26, readline >= 4.2, less >= 358
|
||||
BuildRequires: ncurses-devel >= 5.2-26, readline-devel >= 4.2
|
||||
BuildRoot: %{_tmppath}/%{name}-root
|
||||
Vendor: Landon Noll and Associates
|
||||
Packager: Landon Noll and Associates (http://www.isthe.com/chongo/index.html)
|
||||
Requires: ncurses >= 5.5-24, readline >= 5.1-3, less >= 358
|
||||
BuildRequires: ncurses-devel >= 5.5-24, readline-devel >= 5.1-3
|
||||
BuildRoot: %{_tmppath}/build-root
|
||||
|
||||
%description
|
||||
Calc is arbitrary precision C-like arithmetic system that is a
|
||||
@@ -58,8 +60,8 @@ For the latest calc release, see the calc project home page:
|
||||
|
||||
%package devel
|
||||
Summary: Development files and documentation for calc.
|
||||
Group: Development/Libraries
|
||||
PreReq: %{name} = %{version}-%{release}
|
||||
Group: Applications/Engineering
|
||||
Requires: calc = %{version}-%{release}
|
||||
|
||||
%description devel
|
||||
This package contains the header files and static libraries for developing
|
||||
@@ -70,56 +72,117 @@ For the latest calc release, see the project home page:
|
||||
http://www.isthe.com/chongo/tech/comp/calc/index.html
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%setup -T -b 0
|
||||
|
||||
%build
|
||||
make %{?_smp_mflags} T=%{buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 all chk
|
||||
echo '-=- calc.spec beginning make clobber -=-'
|
||||
make %{?_smp_mflags} T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ clobber
|
||||
echo '-=- calc.spec ending make clobber -=-'
|
||||
echo '-=- calc.spec beginning make calc-static-only -=-'
|
||||
make %{?_smp_mflags} T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ calc-static-only BLD_TYPE=calc-static-only
|
||||
echo '-=- calc.spec ending make calc-static-only -=-'
|
||||
echo '-=- calc.spec beginning make rpm-hide-static -=-'
|
||||
make %{?_smp_mflags} T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ rpm-hide-static
|
||||
echo '-=- calc.spec ending make rpm-hide-static -=-'
|
||||
echo '-=- calc.spec beginning make clobber (again) -=-'
|
||||
make %{?_smp_mflags} T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ clobber
|
||||
echo '-=- calc.spec ending make clobber (again) -=-'
|
||||
echo '-=- calc.spec beginning make calc-dynamic-only -=-'
|
||||
make %{?_smp_mflags} T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ calc-dynamic-only BLD_TYPE=calc-dynamic-only LD_SHARE=
|
||||
echo '-=- calc.spec ending make calc-dynamic-only -=-'
|
||||
echo '-=- calc.spec beginning make chk -=-'
|
||||
make %{?_smp_mflags} T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ chk
|
||||
echo '-=- calc.spec ending make chk -=-'
|
||||
echo '-=- calc.spec beginning make rpm-unhide-static -=-'
|
||||
make %{?_smp_mflags} T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ rpm-unhide-static
|
||||
echo '-=- calc.spec ending make rpm-unhide-static -=-'
|
||||
echo '-=- calc.spec beginning make rpm-clean-static -=-'
|
||||
make %{?_smp_mflags} T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ rpm-clean-static
|
||||
echo '-=- calc.spec ending make rpm-clean-static -=-'
|
||||
echo '-=- calc.spec beginning make rpm-chk-static -=-'
|
||||
make %{?_smp_mflags} T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ rpm-chk-static
|
||||
echo '-=- calc.spec ending make rpm-chk-static -=-'
|
||||
|
||||
%install
|
||||
rm -rf %{buildroot}
|
||||
mkdir -p %{buildroot}
|
||||
make T=%{buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 install
|
||||
echo '-=- calc.spec beginning make install -=-'
|
||||
rm -rf %{_buildroot}
|
||||
mkdir -p %{_buildroot}
|
||||
make T=%{_buildroot} BINDIR=%{_bindir} LIBDIR=%{_libdir} CALC_SHAREDIR=%{_datadir}/%{name} CALC_INCDIR=%{_includedir}/calc MANDIR=%{_mandir}/man1 EXT= V=@ install
|
||||
echo '-=- calc.spec ending make install -=-'
|
||||
|
||||
%clean
|
||||
rm -rf %{buildroot}
|
||||
rm -rf %{_buildroot}
|
||||
|
||||
%files
|
||||
%defattr(-, root, root)
|
||||
%doc BUGS CHANGES COPYING COPYING-LGPL
|
||||
%{_bindir}/*
|
||||
%{_mandir}/man1/*
|
||||
%{_datadir}/%{name}/*/*
|
||||
%{_datadir}/%{name}/bindings
|
||||
%{_datadir}/%{name}/README
|
||||
%{_datadir}/%{name}/*.cal
|
||||
%{_datadir}/%{name}/*.line
|
||||
%attr(755, root, root) %{_bindir}/calc
|
||||
%attr(755, root, root) %{_bindir}/cscript/*
|
||||
%attr(644, root, root) %{_mandir}/man1/calc.1.gz
|
||||
%attr(644, root, root) %{_datadir}/%{name}/README
|
||||
%attr(644, root, root) %{_datadir}/%{name}/bindings
|
||||
%attr(644, root, root) %{_datadir}/%{name}/custhelp/*
|
||||
%attr(644, root, root) %{_datadir}/%{name}/custom/*.cal
|
||||
%attr(644, root, root) %{_datadir}/%{name}/help/*
|
||||
%attr(644, root, root) %{_datadir}/%{name}/*.cal
|
||||
%attr(644, root, root) %{_datadir}/%{name}/*.line
|
||||
%attr(644, root, root) %{_libdir}/libcalc.so
|
||||
%attr(644, root, root) %{_libdir}/libcalc.so.*
|
||||
%attr(644, root, root) %{_libdir}/libcustcalc.so
|
||||
%attr(644, root, root) %{_libdir}/libcustcalc.so.*
|
||||
|
||||
%files devel
|
||||
%defattr(-, root, root)
|
||||
%doc BUGS COPYING COPYING-LGPL LIBRARY
|
||||
%attr(755, root, root) %{_bindir}/calc-static
|
||||
%attr(644, root, root) %{_includedir}/calc/*
|
||||
%attr(644, root, root) %{_libdir}/*.a
|
||||
%attr(644, root, root) %{_libdir}/libcalc.a
|
||||
%attr(644, root, root) %{_libdir}/libcustcalc.a
|
||||
|
||||
%changelog
|
||||
* Sat May 05 2013 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release: 10
|
||||
- Major bug rpm build process bug fix
|
||||
- Source: is a URL as per rpm requirements
|
||||
- Requires: ncurses >= 5.5-24, readline >= 5.1-3, less >= 358
|
||||
- BuildRequires: ncurses-devel >= 5.5-24, readline-devel >= 5.1-3
|
||||
- BuildRoot: %{_tmppath}/build-root
|
||||
- Fixed use of %{_buildroot}
|
||||
- Fixed permissions so that rpm build services can modify libraries
|
||||
- Added missing files to files section
|
||||
* Mon Mar 25 2013 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release: 9 (was 1.1)
|
||||
- Removed deprecated PreReq for calc-devel, using Requires
|
||||
* Sun Sep 01 2007 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release: 8
|
||||
- Release of calc-2.12.2
|
||||
- Calc builds with shared libraries
|
||||
* Sun Jun 25 2006 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release: 7
|
||||
- Changed Copyright to License as per new rpm v4.4 syntax
|
||||
* Sun May 20 2006 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release: 6
|
||||
- Release of calc-2.12.0
|
||||
- Added *.line set files to the list of packaged files
|
||||
* Sun Dec 11 2005 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release: 5
|
||||
- Release of calc-2.11.11
|
||||
- Fixed description in spec file
|
||||
* Wed Feb 26 2003 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release: 4
|
||||
- Release of calc-2.11.7-2
|
||||
- Fixed attributes on include and lib calc-devel files
|
||||
- Added BUGS to calc-devel as well as calc
|
||||
* Tue Feb 25 2003 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release: 3
|
||||
- Release of calc-2.11.7-1
|
||||
- Require ncurses, readline and less to install.
|
||||
- Require ncurses-devel and readline-devel to build.
|
||||
* Tue Feb 18 2003 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release: 2
|
||||
- Misc changes to fit local directory setup
|
||||
* Sun Feb 16 2003 Petteri Kettunen <petterik@users.sourceforge.net>
|
||||
- Release: 1
|
||||
- initial RPM build
|
||||
|
||||
#****
|
||||
|
@@ -15,11 +15,11 @@
|
||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.10 $
|
||||
# @(#) $Id: calcerr.tbl,v 29.10 2006/08/20 15:01:30 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr.tbl,v $
|
||||
# @(#) $Revision: 30.1 $
|
||||
# @(#) $Id: calcerr.tbl,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/bin/calc/RCS/calcerr.tbl,v $
|
||||
#
|
||||
# Under source code control: 1996/05/23 17:38:44
|
||||
# File existed as early as: 1996
|
||||
|
@@ -16,11 +16,11 @@
|
||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.2 $
|
||||
# @(#) $Id: calcerr_c.awk,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr_c.awk,v $
|
||||
# @(#) $Revision: 30.1 $
|
||||
# @(#) $Id: calcerr_c.awk,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/bin/calc/RCS/calcerr_c.awk,v $
|
||||
#
|
||||
# Under source code control: 1996/05/24 03:15:35
|
||||
# File existed as early as: 1996
|
||||
|
@@ -16,11 +16,11 @@
|
||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.2 $
|
||||
# @(#) $Id: calcerr_c.sed,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr_c.sed,v $
|
||||
# @(#) $Revision: 30.1 $
|
||||
# @(#) $Id: calcerr_c.sed,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/bin/calc/RCS/calcerr_c.sed,v $
|
||||
#
|
||||
# Under source code control: 1996/05/24 03:15:35
|
||||
# File existed as early as: 1996
|
||||
|
@@ -16,11 +16,11 @@
|
||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.2 $
|
||||
# @(#) $Id: calcerr_h.awk,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr_h.awk,v $
|
||||
# @(#) $Revision: 30.1 $
|
||||
# @(#) $Id: calcerr_h.awk,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/bin/calc/RCS/calcerr_h.awk,v $
|
||||
#
|
||||
# Under source code control: 1996/05/23 17:38:44
|
||||
# File existed as early as: 1996
|
||||
|
@@ -16,11 +16,11 @@
|
||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.2 $
|
||||
# @(#) $Id: calcerr_h.sed,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr_h.sed,v $
|
||||
# @(#) $Revision: 30.1 $
|
||||
# @(#) $Id: calcerr_h.sed,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/bin/calc/RCS/calcerr_h.sed,v $
|
||||
#
|
||||
# Under source code control: 1996/05/23 17:38:44
|
||||
# File existed as early as: 1996
|
||||
|
@@ -16,10 +16,10 @@
|
||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.5 $
|
||||
# @(#) $Id: check.awk,v 29.5 2006/09/18 08:01:13 chongo Exp $
|
||||
# @(#) $Revision: 30.2 $
|
||||
# @(#) $Id: check.awk,v 30.2 2013/08/11 01:08:32 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/check.awk,v $
|
||||
#
|
||||
# Under source code control: 1996/05/25 22:07:58
|
||||
@@ -30,7 +30,7 @@
|
||||
#
|
||||
# This awk script will print 3 lines before and after any non-blank line that
|
||||
# does not begin with a number. This allows the 'make debug' rule to remove
|
||||
# all non-interest lines the the 'make check' regression output while providing
|
||||
# all non-interest lines the 'make check' regression output while providing
|
||||
# 3 lines of context around unexpected output.
|
||||
#
|
||||
BEGIN {
|
||||
|
8
cmath.h
8
cmath.h
@@ -15,11 +15,11 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.7 $
|
||||
* @(#) $Id: cmath.h,v 29.7 2005/10/18 10:43:49 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/cmath.h,v $
|
||||
* @(#) $Revision: 30.1 $
|
||||
* @(#) $Id: cmath.h,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/bin/calc/RCS/cmath.h,v $
|
||||
*
|
||||
* Under source code control: 1993/07/30 19:42:45
|
||||
* File existed as early as: 1993
|
||||
|
12
codegen.c
12
codegen.c
@@ -17,10 +17,10 @@
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.24 $
|
||||
* @(#) $Id: codegen.c,v 29.24 2007/02/18 14:24:56 chongo Exp $
|
||||
* @(#) $Revision: 30.3 $
|
||||
* @(#) $Id: codegen.c,v 30.3 2013/07/12 22:41:33 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/codegen.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:13
|
||||
@@ -1370,7 +1370,7 @@ creatematrix(void)
|
||||
rescantoken();
|
||||
if (++dim > MAXDIM) {
|
||||
scanerror(T_SEMICOLON,
|
||||
"Only %ld dimensions allowed", MAXDIM);
|
||||
"Only %d dimensions allowed", MAXDIM);
|
||||
return;
|
||||
}
|
||||
(void) getopassignment();
|
||||
@@ -2605,7 +2605,7 @@ definesymbol(char *name, int symtype)
|
||||
break;
|
||||
case SYM_GLOBAL:
|
||||
if (symtype == SYM_GLOBAL && conf->redecl_warn) {
|
||||
warning("redeclaraion of global \"%s\"",
|
||||
warning("redeclaration of global \"%s\"",
|
||||
name);
|
||||
return;
|
||||
}
|
||||
@@ -2613,7 +2613,7 @@ definesymbol(char *name, int symtype)
|
||||
|
||||
case SYM_LOCAL:
|
||||
if (symtype == SYM_LOCAL && conf->redecl_warn) {
|
||||
warning("redeclaraion of local \"%s\"",
|
||||
warning("redeclaration of local \"%s\"",
|
||||
name);
|
||||
return;
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user