#!/usr/bin/env node; /****************************************************************************** * This program demonstrates fast exponentiation * * Copyright © 2020 Richard Lesh. All rights reserved. *****************************************************************************/ const Utils = require('./Utils'); function fastExponentiation(base, power) { let result = 1; let factor = base; let p = power; while (p > 0) { if (((p & 1) === 1)) { result *= factor; } factor *= factor; p >>= 1; } return result; } const main = async () => { for (let base = -0.1; base < 0.9; base += 0.1) { for (let p = 0; p <= 16; ++p) { console.log(Utils.format("{0:.1f}^{1:d} = {2:.16f}", base, p, fastExponentiation(base, p))); } } } main().catch( e => { console.error(e) } );