#include #include #include #include "sqrts.h" #include "cbrts.h" void errortest( char * message, long double guess, long double answer ); int main() { long double x, c; long double guess; long double sqrtans, cbrtans; char string[256] = ""; puts( "Please enter a number to test square root and cube root routines:" ); fgets( string, sizeof string, stdin ); c = atof( string ); sqrtans = sqrtl( c ); x = sqrtans * 1.5; puts( "Square root estimates." ); guess = SqrtA01( x, c ); errortest( "A01", guess, sqrtans ); guess = SqrtB01( x, c ); errortest( "B01", guess, sqrtans ); guess = SqrtA02( x, c ); errortest( "A02", guess, sqrtans ); guess = SqrtB02( x, c ); errortest( "B02", guess, sqrtans ); guess = SqrtA03( x, c ); errortest( "A03", guess, sqrtans ); guess = SqrtB03( x, c ); errortest( "B03", guess, sqrtans ); guess = SqrtBL3( x, c ); errortest( "BL3", guess, sqrtans ); guess = SqrtA04( x, c ); errortest( "A04", guess, sqrtans ); guess = SqrtB04( x, c ); errortest( "B04", guess, sqrtans ); guess = SqrtA05( x, c ); errortest( "A05", guess, sqrtans ); guess = SqrtAL5( x, c ); errortest( "AL5", guess, sqrtans ); guess = SqrtB05( x, c ); errortest( "B05", guess, sqrtans ); guess = SqrtBL5( x, c ); errortest( "BL5", guess, sqrtans ); guess = SqrtA06( x, c ); errortest( "A06", guess, sqrtans ); guess = SqrtB06( x, c ); errortest( "B06", guess, sqrtans ); guess = SqrtA07( x, c ); errortest( "A07", guess, sqrtans ); guess = SqrtB07( x, c ); errortest( "B07", guess, sqrtans ); guess = SqrtA08( x, c ); errortest( "A08", guess, sqrtans ); guess = SqrtB08( x, c ); errortest( "B08", guess, sqrtans ); guess = SqrtA09( x, c ); errortest( "A09", guess, sqrtans ); guess = SqrtB09( x, c ); errortest( "B09", guess, sqrtans ); guess = SqrtA010( x, c ); errortest( "A010", guess, sqrtans ); guess = SqrtB010( x, c ); errortest( "B010", guess, sqrtans ); guess = SqrtA011( x, c ); errortest( "A011", guess, sqrtans ); guess = SqrtB011( x, c ); errortest( "B011", guess, sqrtans ); guess = SqrtA012( x, c ); errortest( "A012", guess, sqrtans ); guess = SqrtB012( x, c ); errortest( "B012", guess, sqrtans ); guess = SqrtA013( x, c ); errortest( "A013", guess, sqrtans ); guess = SqrtB013( x, c ); errortest( "B013", guess, sqrtans ); guess = SqrtA014( x, c ); errortest( "A014", guess, sqrtans ); guess = SqrtB014( x, c ); errortest( "B014", guess, sqrtans ); guess = SqrtA015( x, c ); errortest( "A015", guess, sqrtans ); guess = SqrtB015( x, c ); errortest( "B015", guess, sqrtans ); guess = SqrtA016( x, c ); errortest( "A016", guess, sqrtans ); guess = SqrtB016( x, c ); errortest( "B016", guess, sqrtans ); guess = SqrtA017( x, c ); errortest( "A017", guess, sqrtans ); guess = SqrtB017( x, c ); errortest( "B017", guess, sqrtans ); guess = SqrtA018( x, c ); errortest( "A018", guess, sqrtans ); guess = SqrtB018( x, c ); errortest( "B018", guess, sqrtans ); guess = SqrtA019( x, c ); errortest( "A019", guess, sqrtans ); guess = SqrtB019( x, c ); errortest( "B019", guess, sqrtans ); guess = SqrtA020( x, c ); errortest( "A020", guess, sqrtans ); guess = SqrtB020( x, c ); errortest( "B020", guess, sqrtans ); cbrtans = powl( c, (long double) 1./3.); x = cbrtans * 1.01; puts( "\nCube root estimates." ); guess = CbrtAM1( x, c ); errortest( "AM1", guess, cbrtans ); guess = CbrtA01( x, c ); errortest( "A01", guess, cbrtans ); guess = CbrtAP1( x, c ); errortest( "AP1", guess, cbrtans ); guess = CbrtBM1( x, c ); errortest( "BM1", guess, cbrtans ); guess = CbrtB01( x, c ); errortest( "B01", guess, cbrtans ); guess = CbrtBP1( x, c ); errortest( "BP1", guess, cbrtans ); guess = CbrtAM2( x, c ); errortest( "AM2", guess, cbrtans ); guess = CbrtA02( x, c ); errortest( "A02", guess, cbrtans ); guess = CbrtAP2( x, c ); errortest( "AP2", guess, cbrtans ); guess = CbrtBM2( x, c ); errortest( "BM2", guess, cbrtans ); guess = CbrtB02( x, c ); errortest( "B02", guess, cbrtans ); guess = CbrtBP2( x, c ); errortest( "BP2", guess, cbrtans ); guess = CbrtAM3( x, c ); errortest( "AM3", guess, cbrtans ); guess = CbrtA03( x, c ); errortest( "A03", guess, cbrtans ); guess = CbrtAP3( x, c ); errortest( "AP3", guess, cbrtans ); guess = CbrtBM3( x, c ); errortest( "BM3", guess, cbrtans ); guess = CbrtB03( x, c ); errortest( "B03", guess, cbrtans ); guess = CbrtBP3( x, c ); errortest( "BP3", guess, cbrtans ); guess = CbrtAM4( x, c ); errortest( "AM4", guess, cbrtans ); guess = CbrtA04( x, c ); errortest( "A04", guess, cbrtans ); guess = CbrtAP4( x, c ); errortest( "AP4", guess, cbrtans ); guess = CbrtBM4( x, c ); errortest( "BM4", guess, cbrtans ); guess = CbrtB04( x, c ); errortest( "B04", guess, cbrtans ); guess = CbrtBP4( x, c ); errortest( "BP4", guess, cbrtans ); guess = CbrtAM5( x, c ); errortest( "AM5", guess, cbrtans ); guess = CbrtA05( x, c ); errortest( "A05", guess, cbrtans ); guess = CbrtAP5( x, c ); errortest( "AP5", guess, cbrtans ); guess = CbrtBM5( x, c ); errortest( "BM5", guess, cbrtans ); guess = CbrtB05( x, c ); errortest( "B05", guess, cbrtans ); guess = CbrtBP5( x, c ); errortest( "BP5", guess, cbrtans ); guess = CbrtAM6( x, c ); errortest( "AM6", guess, cbrtans ); guess = CbrtA06( x, c ); errortest( "A06", guess, cbrtans ); guess = CbrtAP6( x, c ); errortest( "AP6", guess, cbrtans ); guess = CbrtBM6( x, c ); errortest( "BM6", guess, cbrtans ); guess = CbrtB06( x, c ); errortest( "B06", guess, cbrtans ); guess = CbrtBP6( x, c ); errortest( "BP6", guess, cbrtans ); return 0; } void errortest( char *message, long double guess, long double answer ) { printf( "( %s ) Guess = %LeL, Relative error = %LeL\n", message, guess, fabsl( ( answer - guess ) / answer ) ); }