/*
 * IBM Accurate Mathematical Library
 * Written by International Business Machines Corp.
 * Copyright (C) 2001-2014 Free Software Foundation, Inc.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License as published by
 * the Free Software Foundation; either version 2.1 of the License, or
 * (at your option) any later version.
 *
 * This program 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.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
 */

/****************************************************************/
/* TABLES FOR THE usqrt() FUNCTION                              */
/****************************************************************/


static const double inroot[128] = {
  1.40872145012100,  1.39792649065766,  1.38737595123859,  1.37706074531819,
  1.36697225234682,  1.35710228748795,  1.34744307370643,  1.33798721601135,
  1.32872767765984,  1.31965775814772,  1.31077107283046,  1.30206153403386,
  1.29352333352711,  1.28515092624400,  1.27693901514820,  1.26888253714903,
  1.26097664998256,  1.25321671998073,  1.24559831065844,  1.23811717205462,
  1.23076923076923,  1.22355058064300,  1.21645747403153,  1.20948631362953,
  1.20263364480453,  1.19589614840310,  1.18927063399547,  1.18275403352732,
  1.17634339535009,  1.17003587860341,  1.16382874792529,  1.15771936846787,
  1.15170520119791,  1.14578379846309,  1.13995279980655,  1.13420992801334,
  1.12855298537376,  1.12297985014975,  1.11748847323133,  1.11207687497107,
  1.10674314218572,  1.10148542531442,  1.09630193572405,  1.09119094315276,
  1.08615077328341,  1.08117980543918,  1.07627647039410,  1.07143924829188,
  1.06666666666667,  1.06195729855996,  1.05730976072814,  1.05272271193563,
  1.04819485132867,  1.04372491688551,  1.03931168393861,  1.03495396376504,
  1.03065060224133,  1.02640047855933,  1.02220250399990,  1.01805562076124,
  1.01395880083916,  1.00991104495649,  1.00591138153909,  1.00195886573624,
  0.99611649018350,  0.98848330114434,  0.98102294317595,  0.97372899112030,
  0.96659534932828,  0.95961623024651,  0.95278613468066,  0.94609983358253,
  0.93955235122353,  0.93313894963169,  0.92685511418159,  0.92069654023750,
  0.91465912076005,  0.90873893479530,  0.90293223677296,  0.89723544654727,
  0.89164514012056,  0.88615804099474,  0.88077101210109,  0.87548104826333,
  0.87028526915267,  0.86518091269740,  0.86016532891275,  0.85523597411976,
  0.85039040552437,  0.84562627613070,  0.84094132996422,  0.83633339758291,
  0.83180039185606,  0.82734030399203,  0.82295119979782,  0.81863121615464,
  0.81437855769486,  0.81019149366693,  0.80606835497581,  0.80200753138734,
  0.79800746888611,  0.79406666717674,  0.79018367731967,  0.78635709949278,
  0.78258558087123,  0.77886781361798,  0.77520253297841,  0.77158851547266,
  0.76802457717971,  0.76450957210799,  0.76104239064719,  0.75762195809661,
  0.75424723326565,  0.75091720714229,  0.74763090162560,  0.74438736831878,
  0.74118568737933,  0.73802496642311,  0.73490433947940,  0.73182296599416,
  0.72878002987884,  0.72577473860242,  0.72280632232420,  0.71987403306536,
  0.71697714391715,  0.71411494828392,  0.71128675915902,  0.70849190843208 };
