mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Release calc version 2.11.5t0
This commit is contained in:
30
BUGS
30
BUGS
@@ -83,6 +83,32 @@ Problems with known work-a-rounds:
|
||||
to fail the regression test. The work-a-round is to compile with -O
|
||||
or to use gcc-2.96 or later.
|
||||
|
||||
This bug has been observed on the Sparc and the PowerPC machine.
|
||||
|
||||
On the PowerPC with gcc-2.95 when compiled with -O2, the following
|
||||
patch seems to help:
|
||||
|
||||
*** zfunc.c.orig Fri Feb 23 18:18:39 2001
|
||||
--- zfunc.c Fri Feb 23 18:39:33 2001
|
||||
***************
|
||||
*** 1481,1487 ****
|
||||
{
|
||||
HALF *a, *A, *b, *a0, u;
|
||||
int i, j, j1, j2, k, k1, m, m0, m1, n, n0, o;
|
||||
! FULL d, e, f, g, h, s, t, x, topbit;
|
||||
int remsign;
|
||||
BOOL up, onebit;
|
||||
ZVALUE sqrt;
|
||||
--- 1481,1488 ----
|
||||
{
|
||||
HALF *a, *A, *b, *a0, u;
|
||||
int i, j, j1, j2, k, k1, m, m0, m1, n, n0, o;
|
||||
! volatile FULL d;
|
||||
! FULL e, f, g, h, s, t, x, topbit;
|
||||
int remsign;
|
||||
BOOL up, onebit;
|
||||
ZVALUE sqrt;
|
||||
|
||||
* Solaris cc somtimes barfs while compiling zrand.c. In particular, calc
|
||||
barfs on on the SVAL macro. The work-a-round is to use the Solaric cc
|
||||
Makefile set sets -DFORCE_STDC. I.e,:
|
||||
@@ -179,8 +205,8 @@ Problems with known work-a-rounds:
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.5 $
|
||||
## @(#) $Id: BUGS,v 29.5 2000/06/07 14:02:13 chongo Exp $
|
||||
## @(#) $Revision: 29.7 $
|
||||
## @(#) $Id: BUGS,v 29.7 2001/02/25 21:01:52 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/BUGS,v $
|
||||
##
|
||||
## Under source code control: 1994/03/18 14:06:13
|
||||
|
25
CHANGES
25
CHANGES
@@ -1,3 +1,21 @@
|
||||
The following are the changes from calc version 2.11.5t0 to date:
|
||||
|
||||
Fixed a compile problem with Linux 2.4 / Debian. Thanks goes
|
||||
to Martin Buck <m at rtin-buck dot de> for help with this issue.
|
||||
|
||||
Fixed a bug in how L64_FORMAT (it determined if "%ld" or "%lld"
|
||||
is appropriate for printing of 64 bit long longs) was determined.
|
||||
Thanks goes to Martin Buck <m at rtin-buck dot de> for reporting
|
||||
this bug and testing the fix.
|
||||
|
||||
An effort was made to make calc easier to build under Windoz
|
||||
using the Cygwin project (http://sources.redhat.com/cygwin/).
|
||||
Thanks to the work of Thomas Jones-Low (tjoneslo and softstart
|
||||
dot com), a number of #if defined(_WIN32)'s have been added
|
||||
to calc source. These changes should not effect Windoz
|
||||
free system such as GNU/Linux, Solaris, POSIX-like, etc ...
|
||||
|
||||
|
||||
The following are the changes from calc version 2.11.4t1 to date:
|
||||
|
||||
Added missing test8600.cal test file.
|
||||
@@ -24,6 +42,9 @@ The following are the changes from calc version 2.11.4t1 to date:
|
||||
Return an error on malloc / realloc failures for bernoulli and
|
||||
euler functions.
|
||||
|
||||
Added MAKEFILE_REV make variable to help determine Makefile version.
|
||||
Fixed the way the env rule reports Makefile values.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.11.3t0 to 2.11.4:
|
||||
|
||||
@@ -5038,8 +5059,8 @@ Following is a list of visible changes to calc from version 1.24.7 to 1.26.1:
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.16 $
|
||||
## @(#) $Id: CHANGES,v 29.16 2000/12/17 13:07:54 chongo Exp $
|
||||
## @(#) $Revision: 29.20 $
|
||||
## @(#) $Id: CHANGES,v 29.20 2001/02/25 22:07:36 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
|
||||
##
|
||||
## Under source code control: 1993/06/02 18:12:57
|
||||
|
25
COPYING
25
COPYING
@@ -12,8 +12,8 @@ This file is Copyrighted
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
# @(#) $Revision: 29.3 $
|
||||
# @(#) $Id: COPYING,v 29.3 2000/12/14 09:18:06 chongo Exp $
|
||||
# @(#) $Revision: 29.5 $
|
||||
# @(#) $Id: COPYING,v 29.5 2000/12/18 10:22:55 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/COPYING,v $
|
||||
|
||||
=-=
|
||||
@@ -140,7 +140,7 @@ Calc copyrights and exception files
|
||||
-----------------------------------
|
||||
|
||||
With the exception of the files listed below, Calc is covered under
|
||||
the following Copyrights:
|
||||
the following GNU Lesser General Public License Copyrights:
|
||||
|
||||
Copyright (C) year David I. Bell
|
||||
Copyright (C) year David I. Bell and Landon Curt Noll
|
||||
@@ -150,12 +150,11 @@ Calc copyrights and exception files
|
||||
Copyright (C) year Ernest Bowen and Landon Curt Noll
|
||||
Copyright (C) year Ernest Bowen
|
||||
|
||||
A few files are not covered under the GNU Lesser General Public
|
||||
License. The source files not covered are:
|
||||
These files are not covered under one of the Copyrights listed above:
|
||||
|
||||
shs1.c shs1.h shs.c shs.h
|
||||
md5.c md5.h lib/qtime.cal COPYING
|
||||
COPYING-LGPL
|
||||
shs1.c shs1.h shs.c shs.h
|
||||
md5.c md5.h COPYING COPYING-LGPL
|
||||
cal/qtime.cal
|
||||
|
||||
The file COPYING-LGPL, which contains a copy of the version 2.1
|
||||
GNU Lesser General Public License, is itself Copyrighted by the
|
||||
@@ -168,10 +167,12 @@ Calc copyrights and exception files
|
||||
verbatim copies of this file but you may not modify this file.
|
||||
|
||||
Some of these exception files are in the public domain. Other
|
||||
exception files have non-LGPL Copyrights. In all cases one may
|
||||
use and distribute these exception files freely. And because one
|
||||
may freely distribute the LGPL covered files, the entire calc
|
||||
source may be freely used and distributed.
|
||||
exception files have non-LGPL Copyrights. Other files are under a
|
||||
LGPL Copyright but have different authors.
|
||||
|
||||
In all cases one may use and distribute these exception files freely.
|
||||
And because one may freely distribute the LGPL covered files, the
|
||||
entire calc source may be freely used and distributed.
|
||||
|
||||
=-=
|
||||
|
||||
|
183
Makefile
183
Makefile
@@ -20,8 +20,8 @@
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.10 $
|
||||
# @(#) $Id: Makefile.ship,v 29.10 2000/12/17 12:23:29 chongo Exp $
|
||||
MAKEFILE_REV= $$Revision: 29.14 $$
|
||||
# @(#) $Id: Makefile.ship,v 29.14 2001/02/25 22:07:36 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
|
||||
#
|
||||
# Under source code control: 1990/02/15 01:48:41
|
||||
@@ -1050,7 +1050,7 @@ LICENSE= COPYING COPYING-LGPL
|
||||
# These files are found (but not built) in the distribution
|
||||
#
|
||||
DISTLIST= ${C_SRC} ${H_SRC} ${MAKE_FILE} BUGS CHANGES LIBRARY README \
|
||||
calc.man HOWTO.INSTALL ${UTIL_MISC_SRC} ${LICENSE}
|
||||
README.WINDOWS calc.man HOWTO.INSTALL ${UTIL_MISC_SRC} ${LICENSE}
|
||||
|
||||
# These files are used to make (but not built) a calc .a link library
|
||||
#
|
||||
@@ -2661,94 +2661,95 @@ chk: ./cal/regress.cal
|
||||
|
||||
env:
|
||||
@echo '=-=-=-=-= dumping major make variables =-=-=-=-='
|
||||
@echo "TERMCONTROL=${TERMCONTROL}"; echo ""
|
||||
@echo "HAVE_VSPRINTF=${HAVE_VSPRINTF}"; echo ""
|
||||
@echo "BYTE_ORDER=${BYTE_ORDER}"; echo ""
|
||||
@echo "LONG_BITS=${LONG_BITS}"; echo ""
|
||||
@echo "LONGLONG_BITS=${LONGLONG_BITS}"; echo ""
|
||||
@echo "HAVE_FPOS=${HAVE_FPOS}"; echo ""
|
||||
@echo "HAVE_FPOS_POS=${HAVE_FPOS_POS}"; echo ""
|
||||
@echo "HAVE_OFFSCL=${HAVE_OFFSCL}"; echo ""
|
||||
@echo "HAVE_POSSCL=${HAVE_POSSCL}"; echo ""
|
||||
@echo "HAVE_CONST=${HAVE_CONST}"; echo ""
|
||||
@echo "HAVE_UID_T=${HAVE_UID_T}"; echo ""
|
||||
@echo "HAVE_NEWSTR=${HAVE_NEWSTR}"; echo ""
|
||||
@echo "HAVE_USTAT=${HAVE_USTAT}"; echo ""
|
||||
@echo "HAVE_GETSID=${HAVE_GETSID}"; echo ""
|
||||
@echo "HAVE_GETPGID=${HAVE_GETPGID}"; echo ""
|
||||
@echo "HAVE_GETTIME=${HAVE_GETTIME}"; echo ""
|
||||
@echo "HAVE_GETPRID=${HAVE_GETPRID}"; echo ""
|
||||
@echo "HAVE_URANDOM=${HAVE_URANDOM}"; echo ""
|
||||
@echo "ALIGN32=${ALIGN32}"; echo ""
|
||||
@echo "BINDIR=${BINDIR}"; echo ""
|
||||
@echo "TOPDIR=${TOPDIR}"; echo ""
|
||||
@echo "LIBDIR=${LIBDIR}"; echo ""
|
||||
@echo "HELPDIR=${HELPDIR}"; echo ""
|
||||
@echo "CUSTOMLIBDIR=${CUSTOMLIBDIR}"; echo ""
|
||||
@echo "CUSTOMHELPDIR=${CUSTOMHELPDIR}"; echo ""
|
||||
@echo "SCRIPTDIR=${SCRIPTDIR}"; echo ""
|
||||
@echo "MANDIR=${MANDIR}"; echo ""
|
||||
@echo "CATDIR=${CATDIR}"; echo ""
|
||||
@echo "MANEXT=${MANEXT}"; echo ""
|
||||
@echo "CATEXT=${CATEXT}"; echo ""
|
||||
@echo "NROFF=${NROFF}"; echo ""
|
||||
@echo "NROFF_ARG=${NROFF_ARG}"; echo ""
|
||||
@echo "MANMAKE=${MANMAKE}"; echo ""
|
||||
@echo "CALCPATH=${CALCPATH}"; echo ""
|
||||
@echo "CALCRC=${CALCRC}"; echo ""
|
||||
@echo "CALCPAGER=${CALCPAGER}"; echo ""
|
||||
@echo "DEBUG=${DEBUG}"; echo ""
|
||||
@echo "NO_SHARED=${NO_SHARED}"; echo ""
|
||||
@echo "LD_NO_SHARED=${LD_NO_SHARED}"; echo ""
|
||||
@echo "RANLIB=${RANLIB}"; echo ""
|
||||
@echo "MAKE_FILE=${MAKE_FILE}"; echo ""
|
||||
@echo "PURIFY=${PURIFY}"; echo ""
|
||||
@echo "LD_DEBUG=${LD_DEBUG}"; echo ""
|
||||
@echo "CALC_ENV=${CALC_ENV}"; echo ""
|
||||
@echo "ALLOW_CUSTOM=${ALLOW_CUSTOM}"; echo ""
|
||||
@echo "CCOPT=${CCOPT}"; echo ""
|
||||
@echo "CCWARN=${CCWARN}"; echo ""
|
||||
@echo "CCMISC=${CCMISC}"; echo ""
|
||||
@echo "CFLAGS=${CFLAGS}"; echo ""
|
||||
@echo "ICFLAGS=${ICFLAGS}"; echo ""
|
||||
@echo "LDFLAGS=${LDFLAGS}"; echo ""
|
||||
@echo "ILDFLAGS=${ILDFLAGS}"; echo ""
|
||||
@echo "LCC=${LCC}"; echo ""
|
||||
@echo "CC=${CC}"; echo ""
|
||||
@echo "SHELL=${SHELL}"; echo ""
|
||||
@echo "MAKE=${MAKE}"; echo ""
|
||||
@echo "AWK=${AWK}"; echo ""
|
||||
@echo "SED=${SED}"; echo ""
|
||||
@echo "SORT=${SORT}"; echo ""
|
||||
@echo "TEE=${TEE}"; echo ""
|
||||
@echo "CTAGS=${CTAGS}"; echo ""
|
||||
@echo "MAKEDEPEND=${MAKEDEPEND}"; echo ""
|
||||
@echo "Q=${Q}"; echo ""
|
||||
@echo "V=${V}"; echo ""
|
||||
@echo "LIBSRC=${LIBSRC}"; echo ""
|
||||
@echo "LIBOBJS=${LIBOBJS}"; echo ""
|
||||
@echo "CALCSRC=${CALCSRC}"; echo ""
|
||||
@echo "CALCOBJS=${CALCOBJS}"; echo ""
|
||||
@echo "BUILD_H_SRC=${BUILD_H_SRC}"; echo ""
|
||||
@echo "BUILD_C_SRC=${BUILD_C_SRC}"; echo ""
|
||||
@echo "UTIL_C_SRC=${UTIL_C_SRC}"; echo ""
|
||||
@echo "UTIL_MISC_SRC=${UTIL_MISC_SRC}"; echo ""
|
||||
@echo "UTIL_OBJS=${UTIL_OBJS}"; echo ""
|
||||
@echo "UTIL_TMP=${UTIL_TMP}"; echo ""
|
||||
@echo "UTIL_PROGS=${UTIL_PROGS}"; echo ""
|
||||
@echo "LIB_H_SRC=${LIB_H_SRC}"; echo ""
|
||||
@echo "CUSTOM_PASSDOWN=${CUSTOM_PASSDOWN}"; echo ""
|
||||
@echo "SAMPLE_PASSDOWN=${SAMPLE_PASSDOWN}"; echo ""
|
||||
@echo "HELP_PASSDOWN=${HELP_PASSDOWN}"; echo ""
|
||||
@echo "CAL_PASSDOWN=${CAL_PASSDOWN}"; echo ""
|
||||
@echo "CSCRIPT_PASSDOWN=${CSCRIPT_PASSDOWN}"; echo ""
|
||||
@echo "H_SRC=${H_SRC}"; echo ""
|
||||
@echo "C_SRC=${C_SRC}"; echo ""
|
||||
@echo "DISTLIST=${DISTLIST}"; echo ""
|
||||
@echo "OBJS=${OBJS}"; echo ""
|
||||
@echo "CALC_LIBS=${CALC_LIBS}"; echo ""
|
||||
@echo "PROGS=${PROGS}"; echo ""
|
||||
@echo "TARGETS=${TARGETS}"; echo ""
|
||||
@echo 'MAKEFILE_REV=${MAKEFILE_REV}'; echo ''
|
||||
@echo 'TERMCONTROL=${TERMCONTROL}'; echo ''
|
||||
@echo 'HAVE_VSPRINTF=${HAVE_VSPRINTF}'; echo ''
|
||||
@echo 'BYTE_ORDER=${BYTE_ORDER}'; echo ''
|
||||
@echo 'LONG_BITS=${LONG_BITS}'; echo ''
|
||||
@echo 'LONGLONG_BITS=${LONGLONG_BITS}'; echo ''
|
||||
@echo 'HAVE_FPOS=${HAVE_FPOS}'; echo ''
|
||||
@echo 'HAVE_FPOS_POS=${HAVE_FPOS_POS}'; echo ''
|
||||
@echo 'HAVE_OFFSCL=${HAVE_OFFSCL}'; echo ''
|
||||
@echo 'HAVE_POSSCL=${HAVE_POSSCL}'; echo ''
|
||||
@echo 'HAVE_CONST=${HAVE_CONST}'; echo ''
|
||||
@echo 'HAVE_UID_T=${HAVE_UID_T}'; echo ''
|
||||
@echo 'HAVE_NEWSTR=${HAVE_NEWSTR}'; echo ''
|
||||
@echo 'HAVE_USTAT=${HAVE_USTAT}'; echo ''
|
||||
@echo 'HAVE_GETSID=${HAVE_GETSID}'; echo ''
|
||||
@echo 'HAVE_GETPGID=${HAVE_GETPGID}'; echo ''
|
||||
@echo 'HAVE_GETTIME=${HAVE_GETTIME}'; echo ''
|
||||
@echo 'HAVE_GETPRID=${HAVE_GETPRID}'; echo ''
|
||||
@echo 'HAVE_URANDOM=${HAVE_URANDOM}'; echo ''
|
||||
@echo 'ALIGN32=${ALIGN32}'; echo ''
|
||||
@echo 'BINDIR=${BINDIR}'; echo ''
|
||||
@echo 'TOPDIR=${TOPDIR}'; echo ''
|
||||
@echo 'LIBDIR=${LIBDIR}'; echo ''
|
||||
@echo 'HELPDIR=${HELPDIR}'; echo ''
|
||||
@echo 'CUSTOMLIBDIR=${CUSTOMLIBDIR}'; echo ''
|
||||
@echo 'CUSTOMHELPDIR=${CUSTOMHELPDIR}'; echo ''
|
||||
@echo 'SCRIPTDIR=${SCRIPTDIR}'; echo ''
|
||||
@echo 'MANDIR=${MANDIR}'; echo ''
|
||||
@echo 'CATDIR=${CATDIR}'; echo ''
|
||||
@echo 'MANEXT=${MANEXT}'; echo ''
|
||||
@echo 'CATEXT=${CATEXT}'; echo ''
|
||||
@echo 'NROFF=${NROFF}'; echo ''
|
||||
@echo 'NROFF_ARG=${NROFF_ARG}'; echo ''
|
||||
@echo 'MANMAKE=${MANMAKE}'; echo ''
|
||||
@echo 'CALCPATH=${CALCPATH}'; echo ''
|
||||
@echo 'CALCRC=${CALCRC}'; echo ''
|
||||
@echo 'CALCPAGER=${CALCPAGER}'; echo ''
|
||||
@echo 'DEBUG=${DEBUG}'; echo ''
|
||||
@echo 'NO_SHARED=${NO_SHARED}'; echo ''
|
||||
@echo 'LD_NO_SHARED=${LD_NO_SHARED}'; echo ''
|
||||
@echo 'RANLIB=${RANLIB}'; echo ''
|
||||
@echo 'MAKE_FILE=${MAKE_FILE}'; echo ''
|
||||
@echo 'PURIFY=${PURIFY}'; echo ''
|
||||
@echo 'LD_DEBUG=${LD_DEBUG}'; echo ''
|
||||
@echo 'CALC_ENV=${CALC_ENV}'; echo ''
|
||||
@echo 'ALLOW_CUSTOM=${ALLOW_CUSTOM}'; echo ''
|
||||
@echo 'CCOPT=${CCOPT}'; echo ''
|
||||
@echo 'CCWARN=${CCWARN}'; echo ''
|
||||
@echo 'CCMISC=${CCMISC}'; echo ''
|
||||
@echo 'CFLAGS=${CFLAGS}'; echo ''
|
||||
@echo 'ICFLAGS=${ICFLAGS}'; echo ''
|
||||
@echo 'LDFLAGS=${LDFLAGS}'; echo ''
|
||||
@echo 'ILDFLAGS=${ILDFLAGS}'; echo ''
|
||||
@echo 'LCC=${LCC}'; echo ''
|
||||
@echo 'CC=${CC}'; echo ''
|
||||
@echo 'SHELL=${SHELL}'; echo ''
|
||||
@echo 'MAKE=${MAKE}'; echo ''
|
||||
@echo 'AWK=${AWK}'; echo ''
|
||||
@echo 'SED=${SED}'; echo ''
|
||||
@echo 'SORT=${SORT}'; echo ''
|
||||
@echo 'TEE=${TEE}'; echo ''
|
||||
@echo 'CTAGS=${CTAGS}'; echo ''
|
||||
@echo 'MAKEDEPEND=${MAKEDEPEND}'; echo ''
|
||||
@echo 'Q=${Q}'; echo ''
|
||||
@echo 'V=${V}'; echo ''
|
||||
@echo 'LIBSRC=${LIBSRC}'; echo ''
|
||||
@echo 'LIBOBJS=${LIBOBJS}'; echo ''
|
||||
@echo 'CALCSRC=${CALCSRC}'; echo ''
|
||||
@echo 'CALCOBJS=${CALCOBJS}'; echo ''
|
||||
@echo 'BUILD_H_SRC=${BUILD_H_SRC}'; echo ''
|
||||
@echo 'BUILD_C_SRC=${BUILD_C_SRC}'; echo ''
|
||||
@echo 'UTIL_C_SRC=${UTIL_C_SRC}'; echo ''
|
||||
@echo 'UTIL_MISC_SRC=${UTIL_MISC_SRC}'; echo ''
|
||||
@echo 'UTIL_OBJS=${UTIL_OBJS}'; echo ''
|
||||
@echo 'UTIL_TMP=${UTIL_TMP}'; echo ''
|
||||
@echo 'UTIL_PROGS=${UTIL_PROGS}'; echo ''
|
||||
@echo 'LIB_H_SRC=${LIB_H_SRC}'; echo ''
|
||||
@echo 'CUSTOM_PASSDOWN=${CUSTOM_PASSDOWN}'; echo ''
|
||||
@echo 'SAMPLE_PASSDOWN=${SAMPLE_PASSDOWN}'; echo ''
|
||||
@echo 'HELP_PASSDOWN=${HELP_PASSDOWN}'; echo ''
|
||||
@echo 'CAL_PASSDOWN=${CAL_PASSDOWN}'; echo ''
|
||||
@echo 'CSCRIPT_PASSDOWN=${CSCRIPT_PASSDOWN}'; echo ''
|
||||
@echo 'H_SRC=${H_SRC}'; echo ''
|
||||
@echo 'C_SRC=${C_SRC}'; echo ''
|
||||
@echo 'DISTLIST=${DISTLIST}'; echo ''
|
||||
@echo 'OBJS=${OBJS}'; echo ''
|
||||
@echo 'CALC_LIBS=${CALC_LIBS}'; echo ''
|
||||
@echo 'PROGS=${PROGS}'; echo ''
|
||||
@echo 'TARGETS=${TARGETS}'; echo ''
|
||||
@echo '=-=-=-=-= end of major make variable dump =-=-=-=-='
|
||||
|
||||
mkdebug: env version.c
|
||||
|
113
README.WINDOWS
Normal file
113
README.WINDOWS
Normal file
@@ -0,0 +1,113 @@
|
||||
Dear calc user on a Windoz based system,
|
||||
|
||||
See the HOWTO.INSTALL file for information on how to build and install calc.
|
||||
See also the README file.
|
||||
|
||||
NOTE: The Windoz port is extremely experimental, untested and perhaps
|
||||
incomplete. We are in the process of making it easier. The
|
||||
following should help anyone who is trying to make a go of this
|
||||
under the current code conditions.
|
||||
|
||||
NOTE: We are currently ONLY making an effort to support building under
|
||||
Windoz using the Cygwin project (http://sources.redhat.com/cygwin/)
|
||||
with the GCC compiler and Un*x tools for Windows.
|
||||
|
||||
NOTE: The main developers do not have access to a Windoz based platform.
|
||||
While we will make an effort to not break calc Windoz based system,
|
||||
our lack of a Windoz test environment will mean we will make mistakes
|
||||
from time to time. Hopefully Windowz users can overcome these mistakes.
|
||||
Of course you are welcome to send us any patches that fix your
|
||||
Windoz build environment.
|
||||
|
||||
=-=
|
||||
|
||||
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 calcexe.exe which is the command line interface.
|
||||
|
||||
He recommends that you generate by hand all of the header files generated
|
||||
by the make file:
|
||||
|
||||
align32.h args.h calcerr.h conf.h endian_calc.h
|
||||
fposval.h have_const.h have_fpos.h have_fpos_pos.h have_malloc.h
|
||||
have_memmv.h have_newstr.h have_offscl.h have_posscl.h
|
||||
have_stdlib.h have_string.h have_times.h have_uid_t.h
|
||||
have_unistd.h longbits.h longlong.h terminal.h
|
||||
have_ustat.h have_getsid.h have_getpgid.h
|
||||
have_gettime.h have_getprid.h have_urandom.h have_rusage.h
|
||||
have_strdup.h
|
||||
|
||||
NOTE: In a future release, a tarball of these files will be shipped with
|
||||
calc so that you do not have to do much other than inspect them.
|
||||
|
||||
=-=
|
||||
|
||||
People who maintain calc need to keep in mind the following:
|
||||
|
||||
The following was added to opcodes.h, config.h, zmath.h and value.h:
|
||||
|
||||
#if defined (_WIN32)
|
||||
#ifdef _EXPORTING
|
||||
#define DLL __declspec(dllexport)
|
||||
#else
|
||||
#define DLL __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#else /* Windoz free systems */
|
||||
|
||||
#define DLL
|
||||
|
||||
#endif /* Windoz free systems */
|
||||
|
||||
Then DLL was added in front of all the exported functions. For example:
|
||||
|
||||
extern int configtype(char*);
|
||||
|
||||
was changed to:
|
||||
|
||||
DLL extern int configtype(char*);
|
||||
|
||||
|
||||
## Copyright (C) 2001 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
|
||||
## 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.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.2 $
|
||||
## @(#) $Id: README.WINDOWS,v 29.2 2001/02/25 22:20:38 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/README.WINDOWS,v $
|
||||
##
|
||||
## Under source code control: 2001/02/25 14:00:05
|
||||
## File existed as early as: 2001
|
||||
##
|
||||
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
||||
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
@@ -1,24 +1,46 @@
|
||||
/*
|
||||
* qtime - Display time as English sentence
|
||||
*
|
||||
* Copyright (C) 1999 Klaus Alexander Seistrup and Landon Curt Noll
|
||||
*
|
||||
* Written by: Klaus Alexander Seistrup <kseis@magnetic-ink.dk>
|
||||
* With mods by: Landon Curt Noll <http://www.isthe.com/chongo/>
|
||||
*
|
||||
* 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.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, 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 $
|
||||
*
|
||||
* Under source code control: 1999/10/13 04:10:33
|
||||
* File existed as early as: 1999
|
||||
*
|
||||
* chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*/
|
||||
|
||||
/*
|
||||
* usage:
|
||||
* qtime(utc_hr_offset)
|
||||
*
|
||||
* utc_hr_offset Offset from UTC in hours.
|
||||
*
|
||||
* Written by: Klaus Alexander Seistrup <kseis@magnetic-ink.dk>
|
||||
* With minor mods by: Landon Curt Noll <http://www.isthe.com/chongo/>
|
||||
*
|
||||
* See:
|
||||
* http://www.magnetic-ink.dk/download/qtime.html
|
||||
*
|
||||
* for examples of qtime() written on other languages.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: qtime.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/qtime.cal,v $
|
||||
*
|
||||
* This file is not covered under version 2.1 of the GNU LGPL.
|
||||
*/
|
||||
|
||||
|
||||
|
16
calc.c
16
calc.c
@@ -19,8 +19,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: calc.c,v 29.5 2000/07/17 15:35:49 chongo Exp $
|
||||
* @(#) $Revision: 29.6 $
|
||||
* @(#) $Id: calc.c,v 29.6 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:11
|
||||
@@ -36,6 +36,18 @@
|
||||
#include <sys/types.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#if defined (_WIN32)
|
||||
#include <io.h>
|
||||
/*
|
||||
* getopt.h file is from the Cygwin GNU library
|
||||
*
|
||||
* See:
|
||||
* http://sources.redhat.com/cygwin/
|
||||
*/
|
||||
#include "../getopt/getopt.h"
|
||||
#define strdup _strdup
|
||||
#endif /* Windoz */
|
||||
|
||||
#define CALC_C
|
||||
#include "calc.h"
|
||||
#include "hist.h"
|
||||
|
30
config.h
30
config.h
@@ -19,8 +19,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: config.h,v 29.4 2000/07/17 15:35:49 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: config.h,v 29.5 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $
|
||||
*
|
||||
* Under source code control: 1995/11/01 22:20:17
|
||||
@@ -35,6 +35,20 @@
|
||||
#define __CONFIG_H__
|
||||
|
||||
|
||||
#if defined (_WIN32)
|
||||
#ifdef _EXPORTING
|
||||
#define DLL __declspec(dllexport)
|
||||
#else
|
||||
#define DLL __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#else /* Windoz free systems */
|
||||
|
||||
#define DLL
|
||||
|
||||
#endif /* Windoz free systems */
|
||||
|
||||
|
||||
#include "nametype.h"
|
||||
#include "qmath.h"
|
||||
|
||||
@@ -193,12 +207,12 @@ extern char *user_debug; /* !=NULL => value of config("user_debug") */
|
||||
/*
|
||||
* configuration externals
|
||||
*/
|
||||
extern CONFIG *config_copy(CONFIG *src);
|
||||
extern void config_free(CONFIG *cfg);
|
||||
extern void config_print(CONFIG *cfg);
|
||||
extern int configtype(char*);
|
||||
extern void config_print(CONFIG*);
|
||||
extern BOOL config_cmp(CONFIG*, CONFIG*);
|
||||
DLL extern CONFIG *config_copy(CONFIG *src);
|
||||
DLL extern void config_free(CONFIG *cfg);
|
||||
DLL extern void config_print(CONFIG *cfg);
|
||||
DLL extern int configtype(char*);
|
||||
DLL extern void config_print(CONFIG*);
|
||||
DLL extern BOOL config_cmp(CONFIG*, CONFIG*);
|
||||
|
||||
|
||||
#endif /* !__CONFIG_H__ */
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# sqaure - print the squares of input values
|
||||
#
|
||||
# Copyright (C) 2000 Landon Curt Noll
|
||||
# Copyright (C) 2000 Ernest Bowen
|
||||
#
|
||||
# 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
|
||||
@@ -18,8 +18,8 @@
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
# @(#) $Revision: 29.1 $
|
||||
# @(#) $Id: square.calc,v 29.1 2000/12/15 14:55:59 chongo Exp $
|
||||
# @(#) $Revision: 29.3 $
|
||||
# @(#) $Id: square.calc,v 29.3 2000/12/17 14:31:58 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/square.calc,v $
|
||||
#
|
||||
# Under source code control: 2000/12/15 06:52:01
|
||||
@@ -27,8 +27,38 @@
|
||||
#
|
||||
# Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
|
||||
# usage:
|
||||
# mersenne exp
|
||||
# Usage:
|
||||
#
|
||||
# From the shell:
|
||||
#
|
||||
# ./square
|
||||
# cat file | ./square
|
||||
# echo "123" | ./square
|
||||
#
|
||||
# Within calc:
|
||||
#
|
||||
# > read square
|
||||
#
|
||||
# With input from a terminal, there is no prompt but each non-empty
|
||||
# line of input is evaluated as a calc expression and if it can be
|
||||
# calculated, the square of the value of that expression is displayed.
|
||||
# Execution stops when an empty line is input.
|
||||
#
|
||||
# From the shell:
|
||||
#
|
||||
# ./square
|
||||
#
|
||||
# The following shows lines of input followed by output:
|
||||
#
|
||||
# 1234
|
||||
# 1522756
|
||||
# ln(2)
|
||||
# ~.48045301391820142467
|
||||
# config("mode","frac"), bernoulli(10)
|
||||
# 25/4356
|
||||
# config("mode", "hex"), 0xff
|
||||
# 0xfe01
|
||||
#
|
||||
|
||||
global s;
|
||||
while ((s = prompt("")))
|
||||
|
9
file.c
9
file.c
@@ -19,8 +19,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: file.c,v 29.3 2000/12/17 12:24:42 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: file.c,v 29.5 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/file.c,v $
|
||||
*
|
||||
* Under source code control: 1991/07/20 00:21:56
|
||||
@@ -35,7 +35,10 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <stdlib.h>
|
||||
#include "have_unistd.h"
|
||||
#if defined(HAVE_UNISTD_H)
|
||||
#include <unistd.h>
|
||||
#endif /* HAVE_UNISTD_H */
|
||||
#include <ctype.h>
|
||||
#include "calc.h"
|
||||
#include "longbits.h"
|
||||
@@ -1179,7 +1182,7 @@ filepos2z(FILEPOS pos)
|
||||
ret.len = FILEPOS_BITS/BASEB;
|
||||
ret.v = alloc(ret.len);
|
||||
zclearval(ret);
|
||||
SWAP_HALF_IN_FILEPOS(ret.v, &pos);
|
||||
SWAP_HALF_IN_FILEPOS(ret.v, (HALF *)&pos);
|
||||
ret.sign = 0;
|
||||
ztrim(&ret);
|
||||
|
||||
|
@@ -17,8 +17,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: fposval.c,v 29.3 2000/12/17 12:25:36 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: fposval.c,v 29.5 2001/02/25 21:01:34 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/fposval.c,v $
|
||||
*
|
||||
* Under source code control: 1994/11/05 03:19:52
|
||||
@@ -85,13 +85,12 @@ main(int argc, char **argv)
|
||||
* print the file position information
|
||||
*/
|
||||
#if defined(HAVE_FPOS_POS)
|
||||
printf("#undef FILEPOS_BITS\n");
|
||||
printf("#define FILEPOS_BITS %d\n", FPOS_POS_BITS);
|
||||
fileposlen = FPOS_POS_BITS;
|
||||
#else /* ! HAVE_FPOS_POS */
|
||||
fileposlen = sizeof(FILEPOS)*8;
|
||||
#endif /* ! HAVE_FPOS_POS */
|
||||
printf("#undef FILEPOS_BITS\n");
|
||||
printf("#define FILEPOS_BITS %d\n", fileposlen);
|
||||
#endif /* ! HAVE_FPOS_POS */
|
||||
#if CALC_BYTE_ORDER == BIG_ENDIAN
|
||||
/*
|
||||
* Big Endian
|
||||
|
13
func.c
13
func.c
@@ -19,8 +19,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: func.c,v 29.5 2000/12/04 19:32:33 chongo Exp $
|
||||
* @(#) $Revision: 29.6 $
|
||||
* @(#) $Id: func.c,v 29.6 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/func.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:15
|
||||
@@ -35,6 +35,11 @@
|
||||
#include <sys/types.h>
|
||||
#include <errno.h>
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include <io.h>
|
||||
#define _access access
|
||||
#endif /* Windoz */
|
||||
|
||||
#if defined(FUNCLIST)
|
||||
|
||||
#define CONST /* disabled for FUNCLIST in case NATIVE_CC doesn't have it */
|
||||
@@ -4922,10 +4927,14 @@ f_listremove(VALUE *vp)
|
||||
static NUMBER *
|
||||
f_runtime(void)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
return qlink(&_qzero_);
|
||||
#else /* Windoz free systems */
|
||||
struct tms buf;
|
||||
|
||||
times(&buf);
|
||||
return iitoq((long) buf.tms_utime, (long) CLK_TCK);
|
||||
#endif /* Windoz free systems */
|
||||
}
|
||||
|
||||
|
||||
|
10
help.c
10
help.c
@@ -17,8 +17,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: help.c,v 29.4 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: help.c,v 29.5 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/help.c,v $
|
||||
*
|
||||
* Under source code control: 1997/09/14 10:58:30
|
||||
@@ -105,7 +105,11 @@ page_file(FILE *stream)
|
||||
/*
|
||||
* form a write pipe to a pager
|
||||
*/
|
||||
cmd = popen(pager, "w");
|
||||
if (pager == NULL || pager[0] == '\0') {
|
||||
cmd = stdout;
|
||||
} else {
|
||||
cmd = popen(pager, "w");
|
||||
}
|
||||
if (cmd == NULL) {
|
||||
fprintf(stderr, "unable form pipe to pager: %s", pager);
|
||||
return;
|
||||
|
13
input.c
13
input.c
@@ -17,8 +17,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: input.c,v 29.3 2000/07/17 15:35:49 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: input.c,v 29.4 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/input.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:16
|
||||
@@ -35,7 +35,9 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <ctype.h>
|
||||
#if !defined(_WIN32)
|
||||
#include <pwd.h>
|
||||
#endif /* Windoz free systems */
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
@@ -257,6 +259,12 @@ opensearchfile(char *name, char *pathlist, char *extension, int rd_once)
|
||||
static char *
|
||||
homeexpand(char *name)
|
||||
{
|
||||
#if defined (_WIN32)
|
||||
|
||||
return NULL;
|
||||
|
||||
#else /* Windoz free systems */
|
||||
|
||||
struct passwd *ent; /* password entry */
|
||||
char *home2; /* fullpath of the home directory */
|
||||
char *fullpath; /* the malloced expanded path */
|
||||
@@ -323,6 +331,7 @@ homeexpand(char *name)
|
||||
}
|
||||
sprintf(fullpath, "%s%s", home2, after);
|
||||
return fullpath;
|
||||
#endif /* Windoz free systems */
|
||||
}
|
||||
|
||||
|
||||
|
22
lib_calc.c
22
lib_calc.c
@@ -17,8 +17,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: lib_calc.c,v 29.4 2000/07/17 15:35:49 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: lib_calc.c,v 29.5 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/lib_calc.c,v $
|
||||
*
|
||||
* Under source code control: 1996/06/17 18:06:19
|
||||
@@ -68,11 +68,16 @@ typedef struct termios ttystruct;
|
||||
# include <termio.h>
|
||||
typedef struct termio ttystruct;
|
||||
|
||||
#else /* assume USE_SGTTY */
|
||||
#elif defined(USE_SGTTY)
|
||||
|
||||
# include <sys/ioctl.h>
|
||||
typedef struct sgttyb ttystruct;
|
||||
|
||||
#elif !defined(_WIN32)
|
||||
|
||||
-=*#*=- A Windoz free system without termio, termios or sgtty!!! -=*#*=-
|
||||
-=*#*=- We do not know how to compile for such a host, sorry!!!! -=*#*=-
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -192,7 +197,9 @@ libcalc_call_me_first(void)
|
||||
* Disable SIGPIPE so that the pipe to the help file pager will
|
||||
* not stop calc.
|
||||
*/
|
||||
#if !defined(_WIN32)
|
||||
(void) signal(SIGPIPE, SIG_IGN);
|
||||
#endif /* Windoz free systems */
|
||||
|
||||
/*
|
||||
* determine the basename
|
||||
@@ -373,7 +380,9 @@ cvmalloc_error(char *message)
|
||||
static void
|
||||
initenv(void)
|
||||
{
|
||||
#if !defined(_WIN32)
|
||||
struct passwd *ent; /* our password entry */
|
||||
#endif /* Windoz free systems */
|
||||
char *c;
|
||||
|
||||
/* determine the $CALCPATH value */
|
||||
@@ -402,6 +411,12 @@ initenv(void)
|
||||
/* determine the $HOME value */
|
||||
c = (no_env ? NULL : getenv(HOME));
|
||||
home = (c ? strdup(c) : NULL);
|
||||
#if defined(_WIN32)
|
||||
if (home == NULL || home[0] == '\0') {
|
||||
/* just assume . is home if all else fails */
|
||||
home = ".";
|
||||
}
|
||||
#else /* Windoz free systems */
|
||||
if (home == NULL || home[0] == '\0') {
|
||||
ent = (struct passwd *)getpwuid(geteuid());
|
||||
if (ent == NULL) {
|
||||
@@ -411,6 +426,7 @@ initenv(void)
|
||||
home = (char *)malloc(strlen(ent->pw_dir)+1);
|
||||
strcpy(home, ent->pw_dir);
|
||||
}
|
||||
#endif /* Windoz free systems */
|
||||
|
||||
/* determine the $PAGER value */
|
||||
c = (no_env ? NULL : getenv(PAGER));
|
||||
|
10
longlong.c
10
longlong.c
@@ -17,8 +17,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: longlong.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: longlong.c,v 29.3 2001/02/23 20:46:38 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/longlong.c,v $
|
||||
*
|
||||
* Under source code control: 1994/08/05 01:09:19
|
||||
@@ -119,10 +119,10 @@ main(int argc, char **argv)
|
||||
printf(" * if defined(L64_FORMAT), ok to use %%ld\n");
|
||||
printf(" * if !defined(L64_FORMAT), use %%lld\n");
|
||||
printf(" */\n");
|
||||
if (buf[0] == '-') {
|
||||
printf("#undef L64_FORMAT\n");
|
||||
} else {
|
||||
if (strcmp(buf, "1311768467284833366") == 0) {
|
||||
printf("#define L64_FORMAT\n");
|
||||
} else {
|
||||
printf("#undef L64_FORMAT\n");
|
||||
}
|
||||
|
||||
/*
|
||||
|
18
opcodes.h
18
opcodes.h
@@ -17,8 +17,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: opcodes.h,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: opcodes.h,v 29.3 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/opcodes.h,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:35
|
||||
@@ -32,6 +32,20 @@
|
||||
#define __OPCODES_H__
|
||||
|
||||
|
||||
#if defined (_WIN32)
|
||||
#ifdef _EXPORTING
|
||||
#define DLL __declspec(dllexport)
|
||||
#else
|
||||
#define DLL __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#else /* Windoz free systems */
|
||||
|
||||
#define DLL
|
||||
|
||||
#endif /* Windoz free systems */
|
||||
|
||||
|
||||
/*
|
||||
* Opcodes
|
||||
*/
|
||||
|
73
seed.c
73
seed.c
@@ -17,8 +17,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: seed.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: seed.c,v 29.3 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/seed.c,v $
|
||||
*
|
||||
* Under source code control: 1999/10/03 10:06:53
|
||||
@@ -40,7 +40,16 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "have_unistd.h"
|
||||
#if defined(HAVE_UNISTD_H)
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include <process.h>
|
||||
#define pid_t int
|
||||
#endif /* Windoz */
|
||||
|
||||
/*
|
||||
* PORTING NOTE:
|
||||
@@ -55,10 +64,19 @@
|
||||
*/
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include "have_times.h"
|
||||
#if defined(HAVE_TIME_H)
|
||||
#include <time.h>
|
||||
#endif
|
||||
#if defined(HAVE_SYS_TIME_H)
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#if defined(HAVE_SYS_TIMES_H)
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
#if !defined(_WIN32)
|
||||
#include <sys/resource.h>
|
||||
#endif /* Windoz free systems */
|
||||
#include <setjmp.h>
|
||||
#include "qmath.h"
|
||||
#include "longbits.h"
|
||||
@@ -69,14 +87,15 @@
|
||||
#include "have_getprid.h"
|
||||
#include "have_urandom.h"
|
||||
#include "have_rusage.h"
|
||||
#include "have_uid_t.h"
|
||||
#if defined(HAVE_USTAT)
|
||||
# include <ustat.h>
|
||||
#endif /* HAVE_USTAT */
|
||||
#endif
|
||||
#if defined(HAVE_URANDOM)
|
||||
# include <fcntl.h>
|
||||
# define DEV_URANDOM "/dev/urandom"
|
||||
# define DEV_URANDOM_POOL 16
|
||||
#endif /* HAVE_URANDOM */
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
@@ -272,26 +291,30 @@ pseudo_seed(void)
|
||||
#if defined(HAVE_GETTIME)
|
||||
# if defined(CLOCK_SGI_CYCLE)
|
||||
struct timespec sgi_cycle; /* SGI hardware clock */
|
||||
# endif /* CLOCK_SGI_CYCLE */
|
||||
# endif
|
||||
# if defined(CLOCK_REALTIME)
|
||||
struct timespec realtime; /* POSIX realtime clock */
|
||||
# endif /* CLOCK_REALTIME */
|
||||
#endif /* HAVE_GETTIME */
|
||||
# endif
|
||||
#endif
|
||||
#if defined(HAVE_GETPRID)
|
||||
prid_t getprid; /* project ID */
|
||||
#endif /* HAVE_GETPRID */
|
||||
#endif
|
||||
#if defined(HAVE_URANDOM)
|
||||
int urandom_fd; /* open descriptor for /dev/urandom */
|
||||
int urandom_ret; /* read() of /dev/random */
|
||||
char urandom_pool[DEV_URANDOM_POOL]; /* /dev/urandom data pool */
|
||||
#endif /* HAVE_URANDOM */
|
||||
#endif
|
||||
#if defined(HAVE_SYS_TIME_H)
|
||||
struct timeval tp; /* time of day */
|
||||
#endif
|
||||
pid_t getpid; /* process ID */
|
||||
pid_t getppid; /* parent process ID */
|
||||
#if defined(HAVE_UID_T)
|
||||
uid_t getuid; /* real user ID */
|
||||
uid_t geteuid; /* effective user ID */
|
||||
gid_t getgid; /* real group ID */
|
||||
gid_t getegid; /* effective group ID */
|
||||
#endif
|
||||
struct stat stat_dot; /* stat of "." */
|
||||
struct stat stat_dotdot; /* stat of ".." */
|
||||
struct stat stat_tmp; /* stat of "/tmp" */
|
||||
@@ -307,19 +330,21 @@ pseudo_seed(void)
|
||||
struct ustat ustat_stdin; /* usage stat of stdin */
|
||||
struct ustat ustat_stdout; /* usage stat of stdout */
|
||||
struct ustat ustat_stderr; /* usage stat of stderr */
|
||||
#endif /* HAVE_USTAT */
|
||||
#endif
|
||||
#if defined(HAVE_GETSID)
|
||||
pid_t getsid; /* session ID */
|
||||
#endif /* HAVE_GETSID */
|
||||
#endif
|
||||
#if defined(HAVE_GETPGID)
|
||||
pid_t getpgid; /* process group ID */
|
||||
#endif /* HAVE_GETPGID */
|
||||
#endif
|
||||
#if defined(HAVE_GETRUSAGE)
|
||||
struct rusage rusage; /* resource utilization */
|
||||
struct rusage rusage_chld; /* resource utilization of children */
|
||||
#endif /* HAVE_GETRUSAGE */
|
||||
#endif
|
||||
#if defined(HAVE_SYS_TIME_H)
|
||||
struct timeval tp2; /* time of day again */
|
||||
struct tms times; /* process times */
|
||||
#endif
|
||||
time_t time; /* local time */
|
||||
size_t size; /* size of this data structure */
|
||||
jmp_buf env; /* setjmp() context */
|
||||
@@ -339,14 +364,14 @@ pseudo_seed(void)
|
||||
#if defined(HAVE_GETTIME)
|
||||
# if defined(CLOCK_SGI_CYCLE)
|
||||
(void) clock_gettime(CLOCK_SGI_CYCLE, &sdata.sgi_cycle);
|
||||
# endif /* CLOCK_SGI_CYCLE */
|
||||
# endif
|
||||
# if defined(CLOCK_REALTIME)
|
||||
(void) clock_gettime(CLOCK_REALTIME, &sdata.realtime);
|
||||
# endif /* CLOCK_REALTIME */
|
||||
#endif /* HAVE_GETTIME */
|
||||
# endif
|
||||
#endif
|
||||
#if defined(HAVE_GETPRID)
|
||||
sdata.getprid = getprid();
|
||||
#endif /* HAVE_GETPRID */
|
||||
#endif
|
||||
#if defined(HAVE_URANDOM)
|
||||
sdata.urandom_fd = open(DEV_URANDOM, O_NONBLOCK|O_RDONLY);
|
||||
if (sdata.urandom_fd >= 0) {
|
||||
@@ -358,13 +383,17 @@ pseudo_seed(void)
|
||||
sdata.urandom_ret = EOF;
|
||||
}
|
||||
#endif /* HAVE_URANDOM */
|
||||
#if defined(HAVE_SYS_TIME_H)
|
||||
(void) gettimeofday(&sdata.tp, NULL);
|
||||
#endif
|
||||
sdata.getpid = getpid();
|
||||
sdata.getppid = getppid();
|
||||
#if defined(HAVE_UID_T)
|
||||
sdata.getuid = getuid();
|
||||
sdata.geteuid = geteuid();
|
||||
sdata.getgid = getgid();
|
||||
sdata.getegid = getegid();
|
||||
#endif
|
||||
(void) stat(".", &sdata.stat_dot);
|
||||
(void) stat("..", &sdata.stat_dotdot);
|
||||
(void) stat("/tmp", &sdata.stat_tmp);
|
||||
@@ -380,19 +409,21 @@ pseudo_seed(void)
|
||||
(void) ustat(sdata.fstat_stdin.st_dev, &sdata.ustat_stdin);
|
||||
(void) ustat(sdata.fstat_stdout.st_dev, &sdata.ustat_stdout);
|
||||
(void) ustat(sdata.fstat_stderr.st_dev, &sdata.ustat_stderr);
|
||||
#endif /* HAVE_USTAT */
|
||||
#endif
|
||||
#if defined(HAVE_GETSID)
|
||||
sdata.getsid = getsid((pid_t)0);
|
||||
#endif /* HAVE_GETSID */
|
||||
#endif
|
||||
#if defined(HAVE_GETPGID)
|
||||
sdata.getpgid = getpgid((pid_t)0);
|
||||
#endif /* HAVE_GETPGID */
|
||||
#endif
|
||||
#if defined(HAVE_GETRUSAGE)
|
||||
(void) getrusage(RUSAGE_SELF, &sdata.rusage);
|
||||
(void) getrusage(RUSAGE_CHILDREN, &sdata.rusage_chld);
|
||||
#endif /* HAVE_GETRUSAGE */
|
||||
#endif
|
||||
#if defined(HAVE_SYS_TIME_H)
|
||||
(void) gettimeofday(&sdata.tp2, NULL);
|
||||
(void) times(&sdata.times);
|
||||
#endif
|
||||
sdata.time = time(NULL);
|
||||
sdata.size = sizeof(sdata);
|
||||
(void) setjmp(sdata.env);
|
||||
|
354
value.h
354
value.h
@@ -17,8 +17,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: value.h,v 29.3 2000/07/17 15:35:49 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: value.h,v 29.4 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/value.h,v $
|
||||
*
|
||||
* Under source code control: 1993/07/30 19:42:47
|
||||
@@ -32,6 +32,20 @@
|
||||
#define __VALUE_H__
|
||||
|
||||
|
||||
#if defined (_WIN32)
|
||||
#ifdef _EXPORTING
|
||||
#define DLL __declspec(dllexport)
|
||||
#else
|
||||
#define DLL __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#else /* Windoz free systems */
|
||||
|
||||
#define DLL
|
||||
|
||||
#endif /* Windoz free systems */
|
||||
|
||||
|
||||
#include "cmath.h"
|
||||
#include "config.h"
|
||||
#include "shs.h"
|
||||
@@ -187,59 +201,59 @@ struct value {
|
||||
/*
|
||||
* value functions
|
||||
*/
|
||||
extern void freevalue(VALUE *vp);
|
||||
extern void copyvalue(VALUE *vp, VALUE *vres);
|
||||
extern void negvalue(VALUE *vp, VALUE *vres);
|
||||
extern void addvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void subvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void mulvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void orvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void andvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void compvalue(VALUE *vp, VALUE *vres);
|
||||
extern void xorvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void squarevalue(VALUE *vp, VALUE *vres);
|
||||
extern void invertvalue(VALUE *vp, VALUE *vres);
|
||||
extern void roundvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
extern void broundvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
extern void setminusvalue(VALUE *, VALUE *, VALUE *);
|
||||
extern void backslashvalue(VALUE *, VALUE *);
|
||||
extern void contentvalue(VALUE *, VALUE *);
|
||||
extern void hashopvalue(VALUE *, VALUE *, VALUE *);
|
||||
extern void apprvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
extern void intvalue(VALUE *vp, VALUE *vres);
|
||||
extern void fracvalue(VALUE *vp, VALUE *vres);
|
||||
extern void incvalue(VALUE *vp, VALUE *vres);
|
||||
extern void decvalue(VALUE *vp, VALUE *vres);
|
||||
extern void conjvalue(VALUE *vp, VALUE *vres);
|
||||
extern void sqrtvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
extern void rootvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
extern void absvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void normvalue(VALUE *vp, VALUE *vres);
|
||||
extern void shiftvalue(VALUE *v1, VALUE *v2, BOOL rightshift, VALUE *vres);
|
||||
extern void scalevalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void powivalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void powervalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
extern void divvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void quovalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
extern void modvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
extern BOOL testvalue(VALUE *vp);
|
||||
extern BOOL comparevalue(VALUE *v1, VALUE *v2);
|
||||
extern BOOL acceptvalue(VALUE *v1, VALUE *v2);
|
||||
extern void relvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
extern void sgnvalue(VALUE *vp, VALUE *vres);
|
||||
extern QCKHASH hashvalue(VALUE *vp, QCKHASH val);
|
||||
extern void printvalue(VALUE *vp, int flags);
|
||||
extern BOOL precvalue(VALUE *v1, VALUE *v2);
|
||||
extern VALUE error_value(int e);
|
||||
extern int set_errno(int e);
|
||||
extern int set_errcount(int e);
|
||||
extern long countlistitems(LIST *lp);
|
||||
extern void addlistitems(LIST *lp, VALUE *vres);
|
||||
extern void addlistinv(LIST *lp, VALUE *vres);
|
||||
extern void copy2octet(VALUE *, OCTET *);
|
||||
extern int copystod(VALUE *, long, long, VALUE *, long);
|
||||
extern void protectall(VALUE *, int);
|
||||
extern void set_update(int);
|
||||
DLL extern void freevalue(VALUE *vp);
|
||||
DLL extern void copyvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void negvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void addvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void subvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void mulvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void orvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void andvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void compvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void xorvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void squarevalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void invertvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void roundvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
DLL extern void broundvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
DLL extern void setminusvalue(VALUE *, VALUE *, VALUE *);
|
||||
DLL extern void backslashvalue(VALUE *, VALUE *);
|
||||
DLL extern void contentvalue(VALUE *, VALUE *);
|
||||
DLL extern void hashopvalue(VALUE *, VALUE *, VALUE *);
|
||||
DLL extern void apprvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
DLL extern void intvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void fracvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void incvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void decvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void conjvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void sqrtvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
DLL extern void rootvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
DLL extern void absvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void normvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern void shiftvalue(VALUE *v1, VALUE *v2, BOOL rightshift, VALUE *vres);
|
||||
DLL extern void scalevalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void powivalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void powervalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
DLL extern void divvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void quovalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
DLL extern void modvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
|
||||
DLL extern BOOL testvalue(VALUE *vp);
|
||||
DLL extern BOOL comparevalue(VALUE *v1, VALUE *v2);
|
||||
DLL extern BOOL acceptvalue(VALUE *v1, VALUE *v2);
|
||||
DLL extern void relvalue(VALUE *v1, VALUE *v2, VALUE *vres);
|
||||
DLL extern void sgnvalue(VALUE *vp, VALUE *vres);
|
||||
DLL extern QCKHASH hashvalue(VALUE *vp, QCKHASH val);
|
||||
DLL extern void printvalue(VALUE *vp, int flags);
|
||||
DLL extern BOOL precvalue(VALUE *v1, VALUE *v2);
|
||||
DLL extern VALUE error_value(int e);
|
||||
DLL extern int set_errno(int e);
|
||||
DLL extern int set_errcount(int e);
|
||||
DLL extern long countlistitems(LIST *lp);
|
||||
DLL extern void addlistitems(LIST *lp, VALUE *vres);
|
||||
DLL extern void addlistinv(LIST *lp, VALUE *vres);
|
||||
DLL extern void copy2octet(VALUE *, OCTET *);
|
||||
DLL extern int copystod(VALUE *, long, long, VALUE *, long);
|
||||
DLL extern void protectall(VALUE *, int);
|
||||
DLL extern void set_update(int);
|
||||
|
||||
|
||||
/*
|
||||
@@ -256,44 +270,44 @@ struct matrix {
|
||||
#define matsize(n) (sizeof(MATRIX) - sizeof(VALUE) + ((n) * sizeof(VALUE)))
|
||||
|
||||
|
||||
extern MATRIX *matadd(MATRIX *m1, MATRIX *m2);
|
||||
extern MATRIX *matsub(MATRIX *m1, MATRIX *m2);
|
||||
extern MATRIX *matmul(MATRIX *m1, MATRIX *m2);
|
||||
extern MATRIX *matneg(MATRIX *m);
|
||||
extern MATRIX *matalloc(long size);
|
||||
extern MATRIX *matcopy(MATRIX *m);
|
||||
extern MATRIX *matinit(MATRIX *m, VALUE *v1, VALUE *v2);
|
||||
extern MATRIX *matsquare(MATRIX *m);
|
||||
extern MATRIX *matinv(MATRIX *m);
|
||||
extern MATRIX *matscale(MATRIX *m, long n);
|
||||
extern MATRIX *matshift(MATRIX *m, long n);
|
||||
extern MATRIX *matmulval(MATRIX *m, VALUE *vp);
|
||||
extern MATRIX *matpowi(MATRIX *m, NUMBER *q);
|
||||
extern MATRIX *matconj(MATRIX *m);
|
||||
extern MATRIX *matquoval(MATRIX *m, VALUE *vp, VALUE *v3);
|
||||
extern MATRIX *matmodval(MATRIX *m, VALUE *vp, VALUE *v3);
|
||||
extern MATRIX *matint(MATRIX *m);
|
||||
extern MATRIX *matfrac(MATRIX *m);
|
||||
extern MATRIX *matappr(MATRIX *m, VALUE *v2, VALUE *v3);
|
||||
extern VALUE mattrace(MATRIX *m);
|
||||
extern MATRIX *mattrans(MATRIX *m);
|
||||
extern MATRIX *matcross(MATRIX *m1, MATRIX *m2);
|
||||
extern BOOL mattest(MATRIX *m);
|
||||
extern void matsum(MATRIX *m, VALUE *vres);
|
||||
extern BOOL matcmp(MATRIX *m1, MATRIX *m2);
|
||||
extern int matsearch(MATRIX *m, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
extern int matrsearch(MATRIX *m, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
extern VALUE matdet(MATRIX *m);
|
||||
extern VALUE matdot(MATRIX *m1, MATRIX *m2);
|
||||
extern void matfill(MATRIX *m, VALUE *v1, VALUE *v2);
|
||||
extern void matfree(MATRIX *m);
|
||||
extern void matprint(MATRIX *m, long max_print);
|
||||
extern VALUE *matindex(MATRIX *mp, BOOL create, long dim, VALUE *indices);
|
||||
extern void matreverse(MATRIX *m);
|
||||
extern void matsort(MATRIX *m);
|
||||
extern BOOL matisident(MATRIX *m);
|
||||
extern MATRIX *matround(MATRIX *m, VALUE *v2, VALUE *v3);
|
||||
extern MATRIX *matbround(MATRIX *m, VALUE *v2, VALUE *v3);
|
||||
DLL extern MATRIX *matadd(MATRIX *m1, MATRIX *m2);
|
||||
DLL extern MATRIX *matsub(MATRIX *m1, MATRIX *m2);
|
||||
DLL extern MATRIX *matmul(MATRIX *m1, MATRIX *m2);
|
||||
DLL extern MATRIX *matneg(MATRIX *m);
|
||||
DLL extern MATRIX *matalloc(long size);
|
||||
DLL extern MATRIX *matcopy(MATRIX *m);
|
||||
DLL extern MATRIX *matinit(MATRIX *m, VALUE *v1, VALUE *v2);
|
||||
DLL extern MATRIX *matsquare(MATRIX *m);
|
||||
DLL extern MATRIX *matinv(MATRIX *m);
|
||||
DLL extern MATRIX *matscale(MATRIX *m, long n);
|
||||
DLL extern MATRIX *matshift(MATRIX *m, long n);
|
||||
DLL extern MATRIX *matmulval(MATRIX *m, VALUE *vp);
|
||||
DLL extern MATRIX *matpowi(MATRIX *m, NUMBER *q);
|
||||
DLL extern MATRIX *matconj(MATRIX *m);
|
||||
DLL extern MATRIX *matquoval(MATRIX *m, VALUE *vp, VALUE *v3);
|
||||
DLL extern MATRIX *matmodval(MATRIX *m, VALUE *vp, VALUE *v3);
|
||||
DLL extern MATRIX *matint(MATRIX *m);
|
||||
DLL extern MATRIX *matfrac(MATRIX *m);
|
||||
DLL extern MATRIX *matappr(MATRIX *m, VALUE *v2, VALUE *v3);
|
||||
DLL extern VALUE mattrace(MATRIX *m);
|
||||
DLL extern MATRIX *mattrans(MATRIX *m);
|
||||
DLL extern MATRIX *matcross(MATRIX *m1, MATRIX *m2);
|
||||
DLL extern BOOL mattest(MATRIX *m);
|
||||
DLL extern void matsum(MATRIX *m, VALUE *vres);
|
||||
DLL extern BOOL matcmp(MATRIX *m1, MATRIX *m2);
|
||||
DLL extern int matsearch(MATRIX *m, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
DLL extern int matrsearch(MATRIX *m, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
DLL extern VALUE matdet(MATRIX *m);
|
||||
DLL extern VALUE matdot(MATRIX *m1, MATRIX *m2);
|
||||
DLL extern void matfill(MATRIX *m, VALUE *v1, VALUE *v2);
|
||||
DLL extern void matfree(MATRIX *m);
|
||||
DLL extern void matprint(MATRIX *m, long max_print);
|
||||
DLL extern VALUE *matindex(MATRIX *mp, BOOL create, long dim, VALUE *indices);
|
||||
DLL extern void matreverse(MATRIX *m);
|
||||
DLL extern void matsort(MATRIX *m);
|
||||
DLL extern BOOL matisident(MATRIX *m);
|
||||
DLL extern MATRIX *matround(MATRIX *m, VALUE *v2, VALUE *v3);
|
||||
DLL extern MATRIX *matbround(MATRIX *m, VALUE *v2, VALUE *v3);
|
||||
|
||||
|
||||
/*
|
||||
@@ -320,32 +334,32 @@ struct list {
|
||||
};
|
||||
|
||||
|
||||
extern void insertlistfirst(LIST *lp, VALUE *vp);
|
||||
extern void insertlistlast(LIST *lp, VALUE *vp);
|
||||
extern void insertlistmiddle(LIST *lp, long index, VALUE *vp);
|
||||
extern void removelistfirst(LIST *lp, VALUE *vp);
|
||||
extern void removelistlast(LIST *lp, VALUE *vp);
|
||||
extern void removelistmiddle(LIST *lp, long index, VALUE *vp);
|
||||
extern void listfree(LIST *lp);
|
||||
extern void listprint(LIST *lp, long max_print);
|
||||
extern int listsearch(LIST *lp, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
extern int listrsearch(LIST *lp, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
extern BOOL listcmp(LIST *lp1, LIST *lp2);
|
||||
extern VALUE *listfindex(LIST *lp, long index);
|
||||
extern LIST *listalloc(void);
|
||||
extern LIST *listcopy(LIST *lp);
|
||||
extern void listreverse(LIST *lp);
|
||||
extern void listsort(LIST *lp);
|
||||
extern LIST *listappr(LIST *lp, VALUE *v2, VALUE *v3);
|
||||
extern LIST *listround(LIST *m, VALUE *v2, VALUE *v3);
|
||||
extern LIST *listbround(LIST *m, VALUE *v2, VALUE *v3);
|
||||
extern LIST *listquo(LIST *lp, VALUE *v2, VALUE *v3);
|
||||
extern LIST *listmod(LIST *lp, VALUE *v2, VALUE *v3);
|
||||
extern BOOL evp(LISTELEM *cp, LISTELEM *x, VALUE *vres);
|
||||
extern BOOL evalpoly(LIST *clist, LISTELEM *x, VALUE *vres);
|
||||
extern void insertitems(LIST *lp1, LIST *lp2);
|
||||
extern LISTELEM *listelement(LIST *, long);
|
||||
extern LIST *listsegment(LIST *, long, long);
|
||||
DLL extern void insertlistfirst(LIST *lp, VALUE *vp);
|
||||
DLL extern void insertlistlast(LIST *lp, VALUE *vp);
|
||||
DLL extern void insertlistmiddle(LIST *lp, long index, VALUE *vp);
|
||||
DLL extern void removelistfirst(LIST *lp, VALUE *vp);
|
||||
DLL extern void removelistlast(LIST *lp, VALUE *vp);
|
||||
DLL extern void removelistmiddle(LIST *lp, long index, VALUE *vp);
|
||||
DLL extern void listfree(LIST *lp);
|
||||
DLL extern void listprint(LIST *lp, long max_print);
|
||||
DLL extern int listsearch(LIST *lp, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
DLL extern int listrsearch(LIST *lp, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
DLL extern BOOL listcmp(LIST *lp1, LIST *lp2);
|
||||
DLL extern VALUE *listfindex(LIST *lp, long index);
|
||||
DLL extern LIST *listalloc(void);
|
||||
DLL extern LIST *listcopy(LIST *lp);
|
||||
DLL extern void listreverse(LIST *lp);
|
||||
DLL extern void listsort(LIST *lp);
|
||||
DLL extern LIST *listappr(LIST *lp, VALUE *v2, VALUE *v3);
|
||||
DLL extern LIST *listround(LIST *m, VALUE *v2, VALUE *v3);
|
||||
DLL extern LIST *listbround(LIST *m, VALUE *v2, VALUE *v3);
|
||||
DLL extern LIST *listquo(LIST *lp, VALUE *v2, VALUE *v3);
|
||||
DLL extern LIST *listmod(LIST *lp, VALUE *v2, VALUE *v3);
|
||||
DLL extern BOOL evp(LISTELEM *cp, LISTELEM *x, VALUE *vres);
|
||||
DLL extern BOOL evalpoly(LIST *clist, LISTELEM *x, VALUE *vres);
|
||||
DLL extern void insertitems(LIST *lp1, LIST *lp2);
|
||||
DLL extern LISTELEM *listelement(LIST *, long);
|
||||
DLL extern LIST *listsegment(LIST *, long, long);
|
||||
|
||||
|
||||
/*
|
||||
@@ -370,15 +384,15 @@ struct assoc {
|
||||
};
|
||||
|
||||
|
||||
extern ASSOC *assocalloc(long initsize);
|
||||
extern ASSOC *assoccopy(ASSOC *ap);
|
||||
extern void assocfree(ASSOC *ap);
|
||||
extern void assocprint(ASSOC *ap, long max_print);
|
||||
extern int assocsearch(ASSOC *ap, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
extern int assocrsearch(ASSOC *ap, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
extern BOOL assoccmp(ASSOC *ap1, ASSOC *ap2);
|
||||
extern VALUE *assocfindex(ASSOC *ap, long index);
|
||||
extern VALUE *associndex(ASSOC *ap, BOOL create, long dim, VALUE *indices);
|
||||
DLL extern ASSOC *assocalloc(long initsize);
|
||||
DLL extern ASSOC *assoccopy(ASSOC *ap);
|
||||
DLL extern void assocfree(ASSOC *ap);
|
||||
DLL extern void assocprint(ASSOC *ap, long max_print);
|
||||
DLL extern int assocsearch(ASSOC *ap, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
DLL extern int assocrsearch(ASSOC *ap, VALUE *vp, long start, long end, ZVALUE *index);
|
||||
DLL extern BOOL assoccmp(ASSOC *ap1, ASSOC *ap2);
|
||||
DLL extern VALUE *assocfindex(ASSOC *ap, long index);
|
||||
DLL extern VALUE *associndex(ASSOC *ap, BOOL create, long dim, VALUE *indices);
|
||||
|
||||
|
||||
/*
|
||||
@@ -460,62 +474,62 @@ struct object {
|
||||
(sizeof(OBJECT) + ((elements) - USUAL_ELEMENTS) * sizeof(VALUE))
|
||||
|
||||
|
||||
extern OBJECT *objcopy(OBJECT *op);
|
||||
extern OBJECT *objalloc(long index);
|
||||
extern VALUE objcall(int action, VALUE *v1, VALUE *v2, VALUE *v3);
|
||||
extern void objfree(OBJECT *op);
|
||||
extern int addelement(char *name);
|
||||
extern int defineobject(char *name, int indices[], int count);
|
||||
extern int checkobject(char *name);
|
||||
extern void showobjfuncs(void);
|
||||
extern void showobjtypes(void);
|
||||
extern int findelement(char *name);
|
||||
extern char *objtypename(unsigned long index);
|
||||
extern int objoffset(OBJECT *op, long index);
|
||||
DLL extern OBJECT *objcopy(OBJECT *op);
|
||||
DLL extern OBJECT *objalloc(long index);
|
||||
DLL extern VALUE objcall(int action, VALUE *v1, VALUE *v2, VALUE *v3);
|
||||
DLL extern void objfree(OBJECT *op);
|
||||
DLL extern int addelement(char *name);
|
||||
DLL extern int defineobject(char *name, int indices[], int count);
|
||||
DLL extern int checkobject(char *name);
|
||||
DLL extern void showobjfuncs(void);
|
||||
DLL extern void showobjtypes(void);
|
||||
DLL extern int findelement(char *name);
|
||||
DLL extern char *objtypename(unsigned long index);
|
||||
DLL extern int objoffset(OBJECT *op, long index);
|
||||
|
||||
|
||||
/*
|
||||
* Configuration parameter name and type.
|
||||
*/
|
||||
extern NAMETYPE configs[];
|
||||
extern void config_value(CONFIG *cfg, int type, VALUE *ret);
|
||||
extern void setconfig(int type, VALUE *vp);
|
||||
extern void config_print(CONFIG *cfg); /* the CONFIG to print */
|
||||
DLL extern void config_value(CONFIG *cfg, int type, VALUE *ret);
|
||||
DLL extern void setconfig(int type, VALUE *vp);
|
||||
DLL extern void config_print(CONFIG *cfg); /* the CONFIG to print */
|
||||
|
||||
|
||||
/*
|
||||
* size, memsize and sizeof support
|
||||
*/
|
||||
extern long elm_count(VALUE *vp);
|
||||
extern long lsizeof(VALUE *vp);
|
||||
extern long memsize(VALUE *vp);
|
||||
DLL extern long elm_count(VALUE *vp);
|
||||
DLL extern long lsizeof(VALUE *vp);
|
||||
DLL extern long memsize(VALUE *vp);
|
||||
|
||||
/*
|
||||
* String functions
|
||||
*/
|
||||
extern STRING *stringadd(STRING *, STRING *);
|
||||
extern STRING *stringcopy(STRING *);
|
||||
extern STRING *stringsub(STRING *, STRING *);
|
||||
extern STRING *stringmul(NUMBER *, STRING *);
|
||||
extern STRING *stringand(STRING *, STRING *);
|
||||
extern STRING *stringor(STRING *, STRING *);
|
||||
extern STRING *stringxor(STRING *, STRING *);
|
||||
extern STRING *stringdiff(STRING *, STRING *);
|
||||
extern STRING *stringsegment(STRING *, long, long);
|
||||
extern STRING *stringshift(STRING *, long);
|
||||
extern STRING *stringcomp(STRING *);
|
||||
extern STRING *stringneg(STRING *);
|
||||
extern STRING *stringcpy(STRING *, STRING *);
|
||||
extern STRING *stringncpy(STRING *, STRING *, long);
|
||||
extern long stringcontent(STRING *s);
|
||||
extern long stringlowbit(STRING *s);
|
||||
extern long stringhighbit(STRING *s);
|
||||
extern BOOL stringcmp(STRING *, STRING *);
|
||||
extern BOOL stringrel(STRING *, STRING *);
|
||||
extern int stringbit(STRING *, long);
|
||||
extern BOOL stringtest(STRING *);
|
||||
extern int stringsetbit(STRING *, long, BOOL);
|
||||
extern int stringsearch(STRING *, STRING *, long, long, ZVALUE *);
|
||||
extern int stringrsearch(STRING *, STRING *, long, long, ZVALUE *);
|
||||
DLL extern STRING *stringadd(STRING *, STRING *);
|
||||
DLL extern STRING *stringcopy(STRING *);
|
||||
DLL extern STRING *stringsub(STRING *, STRING *);
|
||||
DLL extern STRING *stringmul(NUMBER *, STRING *);
|
||||
DLL extern STRING *stringand(STRING *, STRING *);
|
||||
DLL extern STRING *stringor(STRING *, STRING *);
|
||||
DLL extern STRING *stringxor(STRING *, STRING *);
|
||||
DLL extern STRING *stringdiff(STRING *, STRING *);
|
||||
DLL extern STRING *stringsegment(STRING *, long, long);
|
||||
DLL extern STRING *stringshift(STRING *, long);
|
||||
DLL extern STRING *stringcomp(STRING *);
|
||||
DLL extern STRING *stringneg(STRING *);
|
||||
DLL extern STRING *stringcpy(STRING *, STRING *);
|
||||
DLL extern STRING *stringncpy(STRING *, STRING *, long);
|
||||
DLL extern long stringcontent(STRING *s);
|
||||
DLL extern long stringlowbit(STRING *s);
|
||||
DLL extern long stringhighbit(STRING *s);
|
||||
DLL extern BOOL stringcmp(STRING *, STRING *);
|
||||
DLL extern BOOL stringrel(STRING *, STRING *);
|
||||
DLL extern int stringbit(STRING *, long);
|
||||
DLL extern BOOL stringtest(STRING *);
|
||||
DLL extern int stringsetbit(STRING *, long, BOOL);
|
||||
DLL extern int stringsearch(STRING *, STRING *, long, long, ZVALUE *);
|
||||
DLL extern int stringrsearch(STRING *, STRING *, long, long, ZVALUE *);
|
||||
|
||||
#endif /* !__VALUE_H__ */
|
||||
|
@@ -19,8 +19,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.18 $
|
||||
* @(#) $Id: version.c,v 29.18 2000/12/17 12:31:05 chongo Exp $
|
||||
* @(#) $Revision: 29.19 $
|
||||
* @(#) $Id: version.c,v 29.19 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/version.c,v $
|
||||
*
|
||||
* Under source code control: 1990/05/22 11:00:58
|
||||
@@ -42,8 +42,8 @@ static char *program;
|
||||
|
||||
#define MAJOR_VER 2 /* major version */
|
||||
#define MINOR_VER 11 /* minor version */
|
||||
#define MAJOR_PATCH 4 /* patch level or 0 if no patch */
|
||||
#define MINOR_PATCH "2" /* test number or empty string if no patch */
|
||||
#define MAJOR_PATCH 5 /* patch level or 0 if no patch */
|
||||
#define MINOR_PATCH "0" /* test number or empty string if no patch */
|
||||
|
||||
/*
|
||||
* calc version constants
|
||||
|
240
zmath.h
240
zmath.h
@@ -17,8 +17,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: zmath.h,v 29.3 2000/07/17 15:35:49 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: zmath.h,v 29.4 2001/02/25 22:07:36 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/zmath.h,v $
|
||||
*
|
||||
* Under source code control: 1993/07/30 19:42:48
|
||||
@@ -38,6 +38,20 @@
|
||||
#define __ZMATH_H__
|
||||
|
||||
|
||||
#if defined (_WIN32)
|
||||
#ifdef _EXPORTING
|
||||
#define DLL __declspec(dllexport)
|
||||
#else
|
||||
#define DLL __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#else /* Windoz free systems */
|
||||
|
||||
#define DLL
|
||||
|
||||
#endif /* Windoz free systems */
|
||||
|
||||
|
||||
#include "alloc.h"
|
||||
#include "endian_calc.h"
|
||||
#include "longbits.h"
|
||||
@@ -267,126 +281,126 @@ typedef struct {
|
||||
/*
|
||||
* Function prototypes for integer math routines.
|
||||
*/
|
||||
extern HALF * alloc(LEN len);
|
||||
DLL extern HALF * alloc(LEN len);
|
||||
#ifdef ALLOCTEST
|
||||
extern void freeh(HALF *);
|
||||
DLL extern void freeh(HALF *);
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Input, output, and conversion routines.
|
||||
*/
|
||||
extern void zcopy(ZVALUE z, ZVALUE *res);
|
||||
extern void itoz(long i, ZVALUE *res);
|
||||
extern void utoz(FULL i, ZVALUE *res);
|
||||
extern void str2z(char *s, ZVALUE *res);
|
||||
extern long ztoi(ZVALUE z);
|
||||
extern FULL ztou(ZVALUE z);
|
||||
extern void zprintval(ZVALUE z, long decimals, long width);
|
||||
extern void zprintx(ZVALUE z, long width);
|
||||
extern void zprintb(ZVALUE z, long width);
|
||||
extern void zprinto(ZVALUE z, long width);
|
||||
extern void fitzprint(ZVALUE, long, long);
|
||||
DLL extern void zcopy(ZVALUE z, ZVALUE *res);
|
||||
DLL extern void itoz(long i, ZVALUE *res);
|
||||
DLL extern void utoz(FULL i, ZVALUE *res);
|
||||
DLL extern void str2z(char *s, ZVALUE *res);
|
||||
DLL extern long ztoi(ZVALUE z);
|
||||
DLL extern FULL ztou(ZVALUE z);
|
||||
DLL extern void zprintval(ZVALUE z, long decimals, long width);
|
||||
DLL extern void zprintx(ZVALUE z, long width);
|
||||
DLL extern void zprintb(ZVALUE z, long width);
|
||||
DLL extern void zprinto(ZVALUE z, long width);
|
||||
DLL extern void fitzprint(ZVALUE, long, long);
|
||||
|
||||
|
||||
/*
|
||||
* Basic numeric routines.
|
||||
*/
|
||||
extern void zmuli(ZVALUE z, long n, ZVALUE *res);
|
||||
extern long zdivi(ZVALUE z, long n, ZVALUE *res);
|
||||
extern long zmodi(ZVALUE z, long n);
|
||||
extern void zadd(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void zsub(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void zmul(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern long zdiv(ZVALUE z1, ZVALUE z2, ZVALUE *res, ZVALUE *rem, long R);
|
||||
extern long zquo(ZVALUE z1, ZVALUE z2, ZVALUE *res, long R);
|
||||
extern long zmod(ZVALUE z1, ZVALUE z2, ZVALUE *rem, long R);
|
||||
extern void zequo(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern BOOL zdivides(ZVALUE z1, ZVALUE z2);
|
||||
extern void zor(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void zand(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void zxor(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void zandnot(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern long zpopcnt(ZVALUE z, int bitval);
|
||||
extern void zshift(ZVALUE z, long n, ZVALUE *res);
|
||||
extern void zsquare(ZVALUE z, ZVALUE *res);
|
||||
extern long zlowbit(ZVALUE z);
|
||||
extern LEN zhighbit(ZVALUE z);
|
||||
extern void zbitvalue(long n, ZVALUE *res);
|
||||
extern BOOL zisset(ZVALUE z, long n);
|
||||
extern BOOL zisonebit(ZVALUE z);
|
||||
extern BOOL zisallbits(ZVALUE z);
|
||||
extern FLAG ztest(ZVALUE z);
|
||||
extern FLAG zrel(ZVALUE z1, ZVALUE z2);
|
||||
extern FLAG zabsrel(ZVALUE z1, ZVALUE z2);
|
||||
extern BOOL zcmp(ZVALUE z1, ZVALUE z2);
|
||||
DLL extern void zmuli(ZVALUE z, long n, ZVALUE *res);
|
||||
DLL extern long zdivi(ZVALUE z, long n, ZVALUE *res);
|
||||
DLL extern long zmodi(ZVALUE z, long n);
|
||||
DLL extern void zadd(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void zsub(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void zmul(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern long zdiv(ZVALUE z1, ZVALUE z2, ZVALUE *res, ZVALUE *rem, long R);
|
||||
DLL extern long zquo(ZVALUE z1, ZVALUE z2, ZVALUE *res, long R);
|
||||
DLL extern long zmod(ZVALUE z1, ZVALUE z2, ZVALUE *rem, long R);
|
||||
DLL extern void zequo(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern BOOL zdivides(ZVALUE z1, ZVALUE z2);
|
||||
DLL extern void zor(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void zand(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void zxor(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void zandnot(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern long zpopcnt(ZVALUE z, int bitval);
|
||||
DLL extern void zshift(ZVALUE z, long n, ZVALUE *res);
|
||||
DLL extern void zsquare(ZVALUE z, ZVALUE *res);
|
||||
DLL extern long zlowbit(ZVALUE z);
|
||||
DLL extern LEN zhighbit(ZVALUE z);
|
||||
DLL extern void zbitvalue(long n, ZVALUE *res);
|
||||
DLL extern BOOL zisset(ZVALUE z, long n);
|
||||
DLL extern BOOL zisonebit(ZVALUE z);
|
||||
DLL extern BOOL zisallbits(ZVALUE z);
|
||||
DLL extern FLAG ztest(ZVALUE z);
|
||||
DLL extern FLAG zrel(ZVALUE z1, ZVALUE z2);
|
||||
DLL extern FLAG zabsrel(ZVALUE z1, ZVALUE z2);
|
||||
DLL extern BOOL zcmp(ZVALUE z1, ZVALUE z2);
|
||||
|
||||
|
||||
/*
|
||||
* More complicated numeric functions.
|
||||
*/
|
||||
extern FULL uugcd(FULL i1, FULL i2);
|
||||
extern long iigcd(long i1, long i2);
|
||||
extern void zgcd(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void zlcm(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void zreduce(ZVALUE z1, ZVALUE z2, ZVALUE *z1res, ZVALUE *z2res);
|
||||
extern void zfact(ZVALUE z, ZVALUE *dest);
|
||||
extern void zperm(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern int zcomb(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern FLAG zjacobi(ZVALUE z1, ZVALUE z2);
|
||||
extern void zfib(ZVALUE z, ZVALUE *res);
|
||||
extern void zpowi(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void ztenpow(long power, ZVALUE *res);
|
||||
extern void zpowermod(ZVALUE z1, ZVALUE z2, ZVALUE z3, ZVALUE *res);
|
||||
extern BOOL zmodinv(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern BOOL zrelprime(ZVALUE z1, ZVALUE z2);
|
||||
extern long zlog(ZVALUE z1, ZVALUE z2);
|
||||
extern long zlog10(ZVALUE z);
|
||||
extern long zdivcount(ZVALUE z1, ZVALUE z2);
|
||||
extern long zfacrem(ZVALUE z1, ZVALUE z2, ZVALUE *rem);
|
||||
extern long zgcdrem(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern long zdigits(ZVALUE z1);
|
||||
extern long zdigit(ZVALUE z1, long n);
|
||||
extern FLAG zsqrt(ZVALUE z1, ZVALUE *dest, long R);
|
||||
extern void zroot(ZVALUE z1, ZVALUE z2, ZVALUE *dest);
|
||||
extern BOOL zissquare(ZVALUE z);
|
||||
extern void zhnrmod(ZVALUE v, ZVALUE h, ZVALUE zn, ZVALUE zr, ZVALUE *res);
|
||||
DLL extern FULL uugcd(FULL i1, FULL i2);
|
||||
DLL extern long iigcd(long i1, long i2);
|
||||
DLL extern void zgcd(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void zlcm(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void zreduce(ZVALUE z1, ZVALUE z2, ZVALUE *z1res, ZVALUE *z2res);
|
||||
DLL extern void zfact(ZVALUE z, ZVALUE *dest);
|
||||
DLL extern void zperm(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern int zcomb(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern FLAG zjacobi(ZVALUE z1, ZVALUE z2);
|
||||
DLL extern void zfib(ZVALUE z, ZVALUE *res);
|
||||
DLL extern void zpowi(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void ztenpow(long power, ZVALUE *res);
|
||||
DLL extern void zpowermod(ZVALUE z1, ZVALUE z2, ZVALUE z3, ZVALUE *res);
|
||||
DLL extern BOOL zmodinv(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern BOOL zrelprime(ZVALUE z1, ZVALUE z2);
|
||||
DLL extern long zlog(ZVALUE z1, ZVALUE z2);
|
||||
DLL extern long zlog10(ZVALUE z);
|
||||
DLL extern long zdivcount(ZVALUE z1, ZVALUE z2);
|
||||
DLL extern long zfacrem(ZVALUE z1, ZVALUE z2, ZVALUE *rem);
|
||||
DLL extern long zgcdrem(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern long zdigits(ZVALUE z1);
|
||||
DLL extern long zdigit(ZVALUE z1, long n);
|
||||
DLL extern FLAG zsqrt(ZVALUE z1, ZVALUE *dest, long R);
|
||||
DLL extern void zroot(ZVALUE z1, ZVALUE z2, ZVALUE *dest);
|
||||
DLL extern BOOL zissquare(ZVALUE z);
|
||||
DLL extern void zhnrmod(ZVALUE v, ZVALUE h, ZVALUE zn, ZVALUE zr, ZVALUE *res);
|
||||
|
||||
|
||||
/*
|
||||
* Prime related functions.
|
||||
*/
|
||||
extern FLAG zisprime(ZVALUE z);
|
||||
extern FULL znprime(ZVALUE z);
|
||||
extern FULL next_prime(FULL v);
|
||||
extern FULL zpprime(ZVALUE z);
|
||||
extern void zpfact(ZVALUE z, ZVALUE *dest);
|
||||
extern BOOL zprimetest(ZVALUE z, long count, ZVALUE skip);
|
||||
extern BOOL zredcprimetest(ZVALUE z, long count, ZVALUE skip);
|
||||
extern BOOL znextcand(ZVALUE z1, long count, ZVALUE skip, ZVALUE res, ZVALUE mod, ZVALUE *cand);
|
||||
extern BOOL zprevcand(ZVALUE z1, long count, ZVALUE skip, ZVALUE res, ZVALUE mod, ZVALUE *cand);
|
||||
extern FULL zlowfactor(ZVALUE z, long count);
|
||||
extern FLAG zfactor(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern long zpix(ZVALUE z1);
|
||||
extern void zlcmfact(ZVALUE z, ZVALUE *dest);
|
||||
DLL extern FLAG zisprime(ZVALUE z);
|
||||
DLL extern FULL znprime(ZVALUE z);
|
||||
DLL extern FULL next_prime(FULL v);
|
||||
DLL extern FULL zpprime(ZVALUE z);
|
||||
DLL extern void zpfact(ZVALUE z, ZVALUE *dest);
|
||||
DLL extern BOOL zprimetest(ZVALUE z, long count, ZVALUE skip);
|
||||
DLL extern BOOL zredcprimetest(ZVALUE z, long count, ZVALUE skip);
|
||||
DLL extern BOOL znextcand(ZVALUE z1, long count, ZVALUE skip, ZVALUE res, ZVALUE mod, ZVALUE *cand);
|
||||
DLL extern BOOL zprevcand(ZVALUE z1, long count, ZVALUE skip, ZVALUE res, ZVALUE mod, ZVALUE *cand);
|
||||
DLL extern FULL zlowfactor(ZVALUE z, long count);
|
||||
DLL extern FLAG zfactor(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern long zpix(ZVALUE z1);
|
||||
DLL extern void zlcmfact(ZVALUE z, ZVALUE *dest);
|
||||
|
||||
|
||||
/*
|
||||
* Misc misc functions. :-)
|
||||
*/
|
||||
extern void zsquaremod(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void zminmod(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern BOOL zcmpmod(ZVALUE z1, ZVALUE z2, ZVALUE z3);
|
||||
extern void zio_init(void);
|
||||
DLL extern void zsquaremod(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void zminmod(ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern BOOL zcmpmod(ZVALUE z1, ZVALUE z2, ZVALUE z3);
|
||||
DLL extern void zio_init(void);
|
||||
|
||||
|
||||
/*
|
||||
* These functions are for internal use only.
|
||||
*/
|
||||
extern void ztrim(ZVALUE *z);
|
||||
extern void zshiftr(ZVALUE z, long n);
|
||||
extern void zshiftl(ZVALUE z, long n);
|
||||
extern HALF *zalloctemp(LEN len);
|
||||
DLL extern void ztrim(ZVALUE *z);
|
||||
DLL extern void zshiftr(ZVALUE z, long n);
|
||||
DLL extern void zshiftl(ZVALUE z, long n);
|
||||
DLL extern HALF *zalloctemp(LEN len);
|
||||
|
||||
|
||||
/*
|
||||
@@ -403,13 +417,13 @@ typedef struct {
|
||||
ZVALUE one; /* REDC format for the number 1 */
|
||||
} REDC;
|
||||
|
||||
extern REDC *zredcalloc(ZVALUE z1);
|
||||
extern void zredcfree(REDC *rp);
|
||||
extern void zredcencode(REDC *rp, ZVALUE z1, ZVALUE *res);
|
||||
extern void zredcdecode(REDC *rp, ZVALUE z1, ZVALUE *res);
|
||||
extern void zredcmul(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
extern void zredcsquare(REDC *rp, ZVALUE z1, ZVALUE *res);
|
||||
extern void zredcpower(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern REDC *zredcalloc(ZVALUE z1);
|
||||
DLL extern void zredcfree(REDC *rp);
|
||||
DLL extern void zredcencode(REDC *rp, ZVALUE z1, ZVALUE *res);
|
||||
DLL extern void zredcdecode(REDC *rp, ZVALUE z1, ZVALUE *res);
|
||||
DLL extern void zredcmul(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
DLL extern void zredcsquare(REDC *rp, ZVALUE z1, ZVALUE *res);
|
||||
DLL extern void zredcpower(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
|
||||
|
||||
/*
|
||||
@@ -550,32 +564,32 @@ extern void zredcpower(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res);
|
||||
/*
|
||||
* Output routines for either FILE handles or strings.
|
||||
*/
|
||||
extern void math_chr(int ch);
|
||||
extern void math_str(char *str);
|
||||
extern void math_fill(char *str, long width);
|
||||
extern void math_flush(void);
|
||||
extern void math_divertio(void);
|
||||
extern void math_cleardiversions(void);
|
||||
extern char *math_getdivertedio(void);
|
||||
extern int math_setmode(int mode);
|
||||
extern LEN math_setdigits(LEN digits);
|
||||
extern void math_fmt(char *, ...);
|
||||
DLL extern void math_chr(int ch);
|
||||
DLL extern void math_str(char *str);
|
||||
DLL extern void math_fill(char *str, long width);
|
||||
DLL extern void math_flush(void);
|
||||
DLL extern void math_divertio(void);
|
||||
DLL extern void math_cleardiversions(void);
|
||||
DLL extern char *math_getdivertedio(void);
|
||||
DLL extern int math_setmode(int mode);
|
||||
DLL extern LEN math_setdigits(LEN digits);
|
||||
DLL extern void math_fmt(char *, ...);
|
||||
|
||||
|
||||
/*
|
||||
* The error routine.
|
||||
*/
|
||||
extern void math_error(char *, ...);
|
||||
DLL extern void math_error(char *, ...);
|
||||
|
||||
|
||||
/*
|
||||
* external swap functions
|
||||
*/
|
||||
extern HALF *swap_b8_in_HALFs(HALF *dest, HALF *src, LEN len);
|
||||
extern ZVALUE *swap_b8_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all);
|
||||
extern HALF *swap_b16_in_HALFs(HALF *dest, HALF *src, LEN len);
|
||||
extern ZVALUE *swap_b16_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all);
|
||||
extern ZVALUE *swap_HALF_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all);
|
||||
DLL extern HALF *swap_b8_in_HALFs(HALF *dest, HALF *src, LEN len);
|
||||
DLL extern ZVALUE *swap_b8_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all);
|
||||
DLL extern HALF *swap_b16_in_HALFs(HALF *dest, HALF *src, LEN len);
|
||||
DLL extern ZVALUE *swap_b16_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all);
|
||||
DLL extern ZVALUE *swap_HALF_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all);
|
||||
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user