/*
 * repeat - return the value of a repeated set of digits
 *
 * Copyright (C) 2003  Landon Curt Noll
 *
 * Calc is open software; you can redistribute it and/or modify it under
 * the terms of the version 2.1 of the GNU Lesser General Public License
 * as published by the Free Software Foundation.
 *
 * Calc is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.	 See the GNU Lesser General
 * Public License for more details.
 *
 * A copy of version 2.1 of the GNU Lesser General Public License is
 * distributed with calc under the filename COPYING-LGPL.  You should have
 * received a copy with calc; if not, write to Free Software Foundation, Inc.
 * 59 Temple Place, Suite 330, Boston, MA  02111-1307, USA.
 *
 * @(#) $Revision: 29.4 $
 * @(#) $Id: repeat.cal,v 29.4 2003/01/26 19:42:03 chongo Exp $
 * @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/repeat.cal,v $
 *
 * Under source code control:	2003/01/05 00:00:01
 * File existed as early as:	2003
 *
 * chongo <was here> /\oo/\	http://www.isthe.com/chongo/
 * Share and enjoy!  :-)	http://www.isthe.com/chongo/tech/comp/calc/
 */


/*
 * repeat - return the value of a repeated set of digits
 *
 * usage:
 *	repeat(digit_set, repeat_count)
 */
define repeat(digit_set, repeat_count)
{
    local digit_count;	/* digits in the digit_set */

    /* firewall */
    if (!isint(digit_set) || digit_set <= 0) {
	quit "digit set must be an integer > 0";
    }
    if (!isint(repeat_count) || repeat_count <= 0) {
	quit "repeat count must be an integer > 0";
    }

    /* return repeated set of digits */
    digit_count = digits(digit_set);
    return digit_set * (10^(digit_count*repeat_count)-1) / (10^digit_count-1);
}
