/usr/share/calc/unitfrac.cal is in apcalc-common 2.12.4.4-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | /*
* unixfrac - represent a fraction as a sum of distince unit fractions
*
* Copyright (C) 1999 David I. Bell
*
* Calc is open software; you can redistribute it and/or modify it under
* the terms of the version 2.1 of the GNU Lesser General Public License
* as published by the Free Software Foundation.
*
* Calc is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
* Public License for more details.
*
* A copy of version 2.1 of the GNU Lesser General Public License is
* distributed with calc under the filename COPYING-LGPL. You should have
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.1 $
* @(#) $Id: unitfrac.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/unitfrac.cal,v $
*
* Under source code control: 1990/02/15 01:50:38
* File existed as early as: before 1990
*
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
*/
/*
* Represent a fraction as sum of distinct unit fractions.
* The output is the unit fractions themselves, and in square brackets,
* the number of digits in the numerator and denominator of the value left
* to be found. Numbers larger than 3.5 become very difficult to calculate.
*/
define unitfrac(x)
{
local d, di, n;
if (x <= 0)
quit "Non-positive argument";
d = 2;
do {
n = int(1 / x) + 1;
if (n > d)
d = n;
di = 1/d;
print ' [': digits(num(x)): '/': digits(den(x)): ']',, di;
x -= di;
d++;
} while ((num(x) > 1) || (x == di) || (x == 1));
print ' [1/1]',, x;
}
|