mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Release calc version 2.12.4.4
This commit is contained in:
16
CHANGES
16
CHANGES
@@ -1,4 +1,14 @@
|
||||
The following are the changes from calc version 2.12.4.0 to date:
|
||||
The following are the changes from calc version 2.12.4.3 to date:
|
||||
|
||||
Added gvec.cal resource script.
|
||||
|
||||
Added calc-symlink make rulle 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.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
@@ -6798,8 +6808,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.
|
||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
##
|
||||
## @(#) $Revision: 30.21 $
|
||||
## @(#) $Id: CHANGES,v 30.21 2010/09/02 09:50:19 chongo Exp $
|
||||
## @(#) $Revision: 30.22 $
|
||||
## @(#) $Id: CHANGES,v 30.22 2011/05/23 22:48:17 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
|
||||
##
|
||||
## Under source code control: 1993/06/02 18:12:57
|
||||
|
81
Makefile
81
Makefile
@@ -39,8 +39,8 @@
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
MAKEFILE_REV= $$Revision: 30.46 $$
|
||||
# @(#) $Id: Makefile.ship,v 30.46 2010/09/02 09:48:41 chongo Exp $
|
||||
MAKEFILE_REV= $$Revision: 30.47 $$
|
||||
# @(#) $Id: Makefile.ship,v 30.47 2011/05/23 22:47:49 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
|
||||
#
|
||||
# Under source code control: 1990/02/15 01:48:41
|
||||
@@ -997,7 +997,7 @@ EXT=
|
||||
|
||||
# The default calc versions
|
||||
#
|
||||
VERSION= 2.12.4.3
|
||||
VERSION= 2.12.4.4
|
||||
VERS= 2.12.4
|
||||
VER= 2.12
|
||||
VE= 2
|
||||
@@ -4811,6 +4811,81 @@ strip:
|
||||
done
|
||||
${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
|
||||
|
||||
# calc-symlink - setup symlinks from stardard locations into the ${T} tree
|
||||
#
|
||||
calc-symlink:
|
||||
${Q}if [ -z "${T}" ]; then \
|
||||
echo "cannot use $@ make rule when T make var is empty" 1>&2; \
|
||||
echo "aborting" 1>&2; \
|
||||
exit 1; \
|
||||
fi
|
||||
-${Q} for i in ${BINDIR}/calc${EXT} \
|
||||
${BINDIR}/calc-static${EXT} \
|
||||
${SCRIPTDIR} \
|
||||
${LIBDIR}/libcalc${LIB_EXT_VERSION} \
|
||||
${LIBDIR}/libcustcalc${LIB_EXT_VERSION} \
|
||||
${MANDIR}/calc.${MANEXT} \
|
||||
${CALC_SHAREDIR} \
|
||||
${CALC_INCDIR} \
|
||||
; do \
|
||||
if [ -e "${T}$$i" ]; then \
|
||||
if [ "${T}$$i" -ef "$$i" ]; then \
|
||||
echo "ERROR: ${T}$$i is the same as $$i" 1>&2; \
|
||||
else \
|
||||
if [ -e "$$i" ]; then \
|
||||
echo ${RM} -f "$$i"; \
|
||||
${RM} -f "$$i"; \
|
||||
fi; \
|
||||
echo ${LN} -s "${T}$$i" "$$i"; \
|
||||
${LN} -s "${T}$$i" "$$i"; \
|
||||
fi; \
|
||||
else \
|
||||
echo "Warning: not found: ${T}$$i" 1>&2; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} if [ -n "${CATDIR}" ]; then \
|
||||
if [ -e "${T}${CATDIR}/calc.${CATEXT}" ]; then \
|
||||
if [ "${T}${CATDIR}/calc.${CATEXT}" -ef "${CATDIR}/calc.${CATEXT}" ]; then \
|
||||
echo "ERROR: ${T}${CATDIR}/calc.${CATEXT} is the same as ${CATDIR}/calc.${CATEXT}" 1>&2; \
|
||||
else \
|
||||
if [ -e "${CATDIR}/calc.${CATEXT}" ]; then \
|
||||
echo ${RM} -f "${CATDIR}/calc.${CATEXT}"; \
|
||||
${RM} -f "${CATDIR}/calc.${CATEXT}"; \
|
||||
fi; \
|
||||
echo ${LN} -s "${T}${CATDIR}/calc.${CATEXT}" "${CATDIR}/calc.${CATEXT}"; \
|
||||
${LN} -s "${T}${CATDIR}/calc.${CATEXT}" "${CATDIR}/calc.${CATEXT}"; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
# remove any symlinks that may have been created by calc-symlink
|
||||
#
|
||||
calc-unsymlink:
|
||||
-${Q} for i in ${BINDIR}/calc${EXT} \
|
||||
${BINDIR}/calc-static${EXT} \
|
||||
${SCRIPTDIR} \
|
||||
${LIBDIR}/libcalc${LIB_EXT_VERSION} \
|
||||
${LIBDIR}/libcustcalc${LIB_EXT_VERSION} \
|
||||
${MANDIR}/calc.${MANEXT} \
|
||||
${CALC_SHAREDIR} \
|
||||
${CALC_INCDIR} \
|
||||
; do \
|
||||
if [ -L "$$i" ]; then \
|
||||
echo ${RM} -f "$$i"; \
|
||||
${RM} -f "$$i"; \
|
||||
else \
|
||||
echo "Warning: ignoring non-symlink: $$i" 1>&2; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} if [ -n "${CATDIR}" ]; then \
|
||||
if [ -L "${CATDIR}/calc.${CATEXT}" ]; then \
|
||||
echo ${RM} -f "${CATDIR}/calc.${CATEXT}"; \
|
||||
${RM} -f "${CATDIR}/calc.${CATEXT}"; \
|
||||
else \
|
||||
echo "Warning: ignoring non-symlink: ${CATDIR}/calc.${CATEXT}" 1>&2; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
###
|
||||
#
|
||||
# make depend stuff
|
||||
|
@@ -39,8 +39,8 @@
|
||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
#
|
||||
MAKEFILE_REV= $$Revision: 30.46 $$
|
||||
# @(#) $Id: Makefile.ship,v 30.46 2010/09/02 09:48:41 chongo Exp $
|
||||
MAKEFILE_REV= $$Revision: 30.47 $$
|
||||
# @(#) $Id: Makefile.ship,v 30.47 2011/05/23 22:47:49 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
|
||||
#
|
||||
# Under source code control: 1990/02/15 01:48:41
|
||||
@@ -974,7 +974,7 @@ EXT=
|
||||
|
||||
# The default calc versions
|
||||
#
|
||||
VERSION= 2.12.4.3
|
||||
VERSION= 2.12.4.4
|
||||
VERS= 2.12.4
|
||||
VER= 2.12
|
||||
VE= 2
|
||||
@@ -4331,6 +4331,81 @@ strip:
|
||||
done
|
||||
${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
|
||||
|
||||
# calc-symlink - setup symlinks from stardard locations into the ${T} tree
|
||||
#
|
||||
calc-symlink:
|
||||
${Q}if [ -z "${T}" ]; then \
|
||||
echo "cannot use $@ make rule when T make var is empty" 1>&2; \
|
||||
echo "aborting" 1>&2; \
|
||||
exit 1; \
|
||||
fi
|
||||
-${Q} for i in ${BINDIR}/calc${EXT} \
|
||||
${BINDIR}/calc-static${EXT} \
|
||||
${SCRIPTDIR} \
|
||||
${LIBDIR}/libcalc${LIB_EXT_VERSION} \
|
||||
${LIBDIR}/libcustcalc${LIB_EXT_VERSION} \
|
||||
${MANDIR}/calc.${MANEXT} \
|
||||
${CALC_SHAREDIR} \
|
||||
${CALC_INCDIR} \
|
||||
; do \
|
||||
if [ -e "${T}$$i" ]; then \
|
||||
if [ "${T}$$i" -ef "$$i" ]; then \
|
||||
echo "ERROR: ${T}$$i is the same as $$i" 1>&2; \
|
||||
else \
|
||||
if [ -e "$$i" ]; then \
|
||||
echo ${RM} -f "$$i"; \
|
||||
${RM} -f "$$i"; \
|
||||
fi; \
|
||||
echo ${LN} -s "${T}$$i" "$$i"; \
|
||||
${LN} -s "${T}$$i" "$$i"; \
|
||||
fi; \
|
||||
else \
|
||||
echo "Warning: not found: ${T}$$i" 1>&2; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} if [ -n "${CATDIR}" ]; then \
|
||||
if [ -e "${T}${CATDIR}/calc.${CATEXT}" ]; then \
|
||||
if [ "${T}${CATDIR}/calc.${CATEXT}" -ef "${CATDIR}/calc.${CATEXT}" ]; then \
|
||||
echo "ERROR: ${T}${CATDIR}/calc.${CATEXT} is the same as ${CATDIR}/calc.${CATEXT}" 1>&2; \
|
||||
else \
|
||||
if [ -e "${CATDIR}/calc.${CATEXT}" ]; then \
|
||||
echo ${RM} -f "${CATDIR}/calc.${CATEXT}"; \
|
||||
${RM} -f "${CATDIR}/calc.${CATEXT}"; \
|
||||
fi; \
|
||||
echo ${LN} -s "${T}${CATDIR}/calc.${CATEXT}" "${CATDIR}/calc.${CATEXT}"; \
|
||||
${LN} -s "${T}${CATDIR}/calc.${CATEXT}" "${CATDIR}/calc.${CATEXT}"; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
# remove any symlinks that may have been created by calc-symlink
|
||||
#
|
||||
calc-unsymlink:
|
||||
-${Q} for i in ${BINDIR}/calc${EXT} \
|
||||
${BINDIR}/calc-static${EXT} \
|
||||
${SCRIPTDIR} \
|
||||
${LIBDIR}/libcalc${LIB_EXT_VERSION} \
|
||||
${LIBDIR}/libcustcalc${LIB_EXT_VERSION} \
|
||||
${MANDIR}/calc.${MANEXT} \
|
||||
${CALC_SHAREDIR} \
|
||||
${CALC_INCDIR} \
|
||||
; do \
|
||||
if [ -L "$$i" ]; then \
|
||||
echo ${RM} -f "$$i"; \
|
||||
${RM} -f "$$i"; \
|
||||
else \
|
||||
echo "Warning: ignoring non-symlink: $$i" 1>&2; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} if [ -n "${CATDIR}" ]; then \
|
||||
if [ -L "${CATDIR}/calc.${CATEXT}" ]; then \
|
||||
echo ${RM} -f "${CATDIR}/calc.${CATEXT}"; \
|
||||
${RM} -f "${CATDIR}/calc.${CATEXT}"; \
|
||||
else \
|
||||
echo "Warning: ignoring non-symlink: ${CATDIR}/calc.${CATEXT}" 1>&2; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
###
|
||||
#
|
||||
# make depend stuff
|
||||
|
@@ -18,8 +18,8 @@
|
||||
# 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.4 $
|
||||
# @(#) $Id: Makefile,v 30.4 2010/09/02 06:01:39 chongo Exp $
|
||||
# @(#) $Revision: 30.5 $
|
||||
# @(#) $Id: Makefile,v 30.5 2011/05/23 22:50:18 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/Makefile,v $
|
||||
#
|
||||
# Under source code control: 1991/07/21 05:00:54
|
||||
@@ -194,7 +194,7 @@ CALC_FILES= README bigprime.cal deg.cal ellip.cal lucas.cal lucas_chk.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 \
|
||||
dms.cal hms.cal
|
||||
dms.cal hms.cal gvec.cal
|
||||
|
||||
# These files are found (but not built) in the distribution
|
||||
#
|
||||
|
11
cal/README
11
cal/README
@@ -298,6 +298,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:
|
||||
@@ -1058,8 +1065,8 @@ xx_print.cal
|
||||
## 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: README,v 30.2 2010/09/02 06:01:39 chongo Exp $
|
||||
## @(#) $Revision: 30.3 $
|
||||
## @(#) $Id: README,v 30.3 2011/05/23 22:50:32 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/README,v $
|
||||
##
|
||||
## Under source code control: 1990/02/15 01:50:32
|
||||
|
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/cmd/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;
|
||||
}
|
@@ -366,7 +366,7 @@ EXT=
|
||||
|
||||
# The default calc versions
|
||||
#
|
||||
VERSION= 2.12.4.3
|
||||
VERSION= 2.12.4.4
|
||||
VERS= 2.12.4
|
||||
VER= 2.12
|
||||
VE= 2
|
||||
|
@@ -366,7 +366,7 @@ EXT=
|
||||
|
||||
# The default calc versions
|
||||
#
|
||||
VERSION= 2.12.4.3
|
||||
VERSION= 2.12.4.4
|
||||
VERS= 2.12.4
|
||||
VER= 2.12
|
||||
VE= 2
|
||||
|
@@ -351,7 +351,7 @@ EXT=
|
||||
|
||||
# The default calc versions
|
||||
#
|
||||
VERSION= 2.12.4.3
|
||||
VERSION= 2.12.4.4
|
||||
VERS= 2.12.4
|
||||
VER= 2.12
|
||||
VE= 2
|
||||
|
@@ -19,8 +19,8 @@
|
||||
* 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.13 $
|
||||
* @(#) $Id: version.c,v 30.13 2010/09/02 09:50:19 chongo Exp $
|
||||
* @(#) $Revision: 30.14 $
|
||||
* @(#) $Id: version.c,v 30.14 2011/05/23 23:02:40 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/version.c,v $
|
||||
*
|
||||
* Under source code control: 1990/05/22 11:00:58
|
||||
@@ -49,7 +49,7 @@ static char *program;
|
||||
#define MAJOR_VER 2 /* major library version */
|
||||
#define MINOR_VER 12 /* minor library version */
|
||||
#define MAJOR_PATCH 4 /* major software level under library version */
|
||||
#define MINOR_PATCH 3 /* minor software level or 0 if not patched */
|
||||
#define MINOR_PATCH 4 /* minor software level or 0 if not patched */
|
||||
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user