Algorithms_in_C++ 1.0.0
Set of algorithms implemented in C++.
Loading...
Searching...
No Matches
babylonian_method.cpp File Reference

A babylonian method (BM) is an algorithm that computes the square root. More...

#include <cassert>
#include <cmath>
#include <iostream>
Include dependency graph for babylonian_method.cpp:

Namespaces

namespace  numerical_methods
 for assert
 

Functions

double numerical_methods::babylonian_method (double radicand)
 Babylonian methods is an iterative function which returns square root of radicand.
 
static void test ()
 Self-test implementations.
 
int main (int argc, char const *argv[])
 Main function.
 

Detailed Description

A babylonian method (BM) is an algorithm that computes the square root.

This algorithm has an application in use case scenario where a user wants find accurate square roots of large numbers

Author
Ameya Chawla

Function Documentation

◆ main()

int main ( int argc,
char const * argv[] )

Main function.

Parameters
argccommandline argument count (ignored)
argvcommandline array of arguments (ignored) calls automated test function to test the working of fast fourier transform.
Returns
0 on exit
96 {
97 test(); // run self-test implementations
98 // with 2 defined test cases
99 return 0;
100}
static void test()
Self-test implementations.
Definition babylonian_method.cpp:62
Here is the call graph for this function:

◆ test()

static void test ( )
static

Self-test implementations.

Declaring two test cases and checking for the error in predicted and true value is less than 0.0001.

Returns
void

Testcase 1

Testcase 2

Real Output 1

Real Output 2

Test result for testcase 1

Test result for testcase 2

Testing for test Case 1

Testing for test Case 2

62 {
63 /* descriptions of the following test */
64
65 auto testcase1 = 125348; /// Testcase 1
66 auto testcase2 = 752080; /// Testcase 2
67
68 auto real_output1 = 354.045194855; /// Real Output 1
69 auto real_output2 = 867.225460881; /// Real Output 2
70
71 auto test_result1 = numerical_methods::babylonian_method(testcase1);
72 /// Test result for testcase 1
73 auto test_result2 = numerical_methods::babylonian_method(testcase2);
74 /// Test result for testcase 2
75
76 assert(std::max(test_result1, real_output1) -
77 std::min(test_result1, real_output1) <
78 0.0001);
79 /// Testing for test Case 1
80 assert(std::max(test_result2, real_output2) -
81 std::min(test_result2, real_output2) <
82 0.0001);
83 /// Testing for test Case 2
84
85 std::cout << "All tests have successfully passed!\n";
86}
T max(T... args)
T min(T... args)
double babylonian_method(double radicand)
Babylonian methods is an iterative function which returns square root of radicand.
Definition babylonian_method.cpp:30
Here is the call graph for this function: