@@ -354,17 +354,62 @@ qd_1_sqrt2 : 7.07106781186547524400844362104849e-01 vs 7.071067811865475244
354
354
{
355
355
356
356
qd a{ 2.0 };
357
- std::cout << " sqrt(2.0) " << to_quad (sqrt (a)) << ' \n ' ;
358
- std::cout << " 1/sqrt(2.0) " << to_quad (reciprocal (sqrt (a))) << ' \n ' ;
357
+ qd sqrt2 = sqrt (a);
358
+ std::cout << " sqrt(2.0) " << to_quad (sqrt2) << ' \n ' ;
359
+
359
360
a = 3.0 ;
360
361
std::cout << " sqrt(3.0) " << to_quad (sqrt (a)) << ' \n ' ;
361
362
a = 5.0 ;
362
363
std::cout << " sqrt(5.0) " << to_quad (sqrt (a)) << ' \n ' ;
363
364
365
+ std::cout << " 1/sqrt(2.0) " << to_quad (reciprocal (sqrt2)) << ' \n ' ;
366
+
364
367
a = sqrt (qd_pi);
365
368
std::cout << " 2 / sqrtpi " << to_quad (2.0 / a) << ' \n ' ;
366
369
}
370
+ /*
371
+ *
372
+ Debug build
373
+ sqrt(2.0) ( 1.4142135623730951, -9.6672933134529135e-17, 4.1386753086994136e-33, 4.9355469914683509e-50)
374
+ sqrt(3.0) ( 1.7320508075688772, 1.0035084221806903e-16, -1.4959542475733896e-33, 5.3061475632961675e-50)
375
+ sqrt(5.0) ( 2.2360679774997898, -1.0864230407365012e-16, 5.3086504167631309e-33, -6.6099839950042175e-50)
376
+ 1/sqrt(2.0) ( 0.70710678118654757, -4.8336466567264567e-17, 2.0693376543497068e-33, 2.4677734957341755e-50)
377
+ 2 / sqrtpi ( 1.1283791670955126, 1.5335459613165881e-17, -4.7656845966936863e-34, -2.0077946616552625e-50)
378
+
379
+ Release build
380
+ sqrt(2.0) ( 1.4142135623730951, -9.6672933134529135e-17, 4.1386753203466335e-33, -3.3032885712977947e-49)
381
+ sqrt(3.0) ( 1.7320508075688772, 1.0035084221806903e-16, -1.4959542883445281e-33, 5.0676801879243325e-50)
382
+ sqrt(5.0) ( 2.2360679774997898, -1.0864230407365012e-16, 5.3086504310320564e-33, -2.7103246582355688e-49)
383
+ 1/sqrt(2.0) ( 0.70710678118654757, -4.8336466312625432e-17, -3.039266735626984e-34, -1.350504809842679e-50)
384
+ 2 / sqrtpi ( 1.1283791670955126, 1.5335458971746789e-17, 2.6579683555126638e-34, -1.683757146154259e-50)
385
+
386
+ difference sqrt2 : -1.16472195516512003859185071422508e-41
387
+ difference sqrt3 : +4.07711385546630871610406778813869e-41
388
+ difference sqrt5 : -1.42689253079290274645876254577245e-41
389
+ difference 1_sqrt2 : -2.54639133258339414062837196323682e-25
390
+ difference 2_sqrtpi : +6.41419091181394536188494115009207e-25
391
+
392
+ */
367
393
394
+ {
395
+ qd debug_sqrt2 (1.4142135623730951 , -9.6672933134529135e-17 , 4.1386753086994136e-33 , 4.9355469914683509e-50 );
396
+ qd debug_sqrt3 (1.7320508075688772 , 1.0035084221806903e-16 , -1.4959542475733896e-33 , 5.3061475632961675e-50 );
397
+ qd debug_sqrt5 (2.2360679774997898 , -1.0864230407365012e-16 , 5.3086504167631309e-33 , -6.6099839950042175e-50 );
398
+ qd debug_1_sqrt2 (0.70710678118654757 , -4.8336466567264567e-17 , 2.0693376543497068e-33 , 2.4677734957341755e-50 );
399
+ qd debug_2_sqrtpi (1.1283791670955126 , 1.5335459613165881e-17 , -4.7656845966936863e-34 , -2.0077946616552625e-50 );
400
+
401
+ qd release_sqrt2 (1.4142135623730951 , -9.6672933134529135e-17 , 4.1386753203466335e-33 , -3.3032885712977947e-49 );
402
+ qd release_sqrt3 (1.7320508075688772 , 1.0035084221806903e-16 , -1.4959542883445281e-33 , 5.0676801879243325e-50 );
403
+ qd release_sqrt5 (2.2360679774997898 , -1.0864230407365012e-16 , 5.3086504310320564e-33 , -2.7103246582355688e-49 );
404
+ qd release_1_sqrt2 (0.70710678118654757 , -4.8336466312625432e-17 , -3.039266735626984e-34 , -1.350504809842679e-50 );
405
+ qd release_2_sqrtpi (1.1283791670955126 , 1.5335458971746789e-17 , 2.6579683555126638e-34 , -1.683757146154259e-50 );
406
+
407
+ std::cout << " difference sqrt2 : " << (debug_sqrt2 - release_sqrt2) << ' \n ' ;
408
+ std::cout << " difference sqrt3 : " << (debug_sqrt3 - release_sqrt3) << ' \n ' ;
409
+ std::cout << " difference sqrt5 : " << (debug_sqrt5 - release_sqrt5) << ' \n ' ;
410
+ std::cout << " difference 1_sqrt2 : " << (debug_1_sqrt2 - release_1_sqrt2) << ' \n ' ;
411
+ std::cout << " difference 2_sqrtpi : " << (debug_2_sqrtpi - release_2_sqrtpi) << ' \n ' ;
412
+ }
368
413
369
414
std::cout << std::setprecision (oldPrec);
370
415
0 commit comments