Algorithms_in_C++ 1.0.0
Set of algorithms implemented in C++.
babylonian_method.cpp File Reference

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

#include <cassert>
#include <iostream>
#include "math.h"
Include dependency graph for babylonian_method.cpp:

Namespaces

namespace  numerical_methods
 for IO operations
 

Functions

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

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
97 {
98 test(); // run self-test implementations
99 // with 2 defined test cases
100 return 0;
101}
static void test()
Self-test implementations.
Definition: babylonian_method.cpp:63
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

63 {
64 /* descriptions of the following test */
65
66 auto testcase1 = 125348; /// Testcase 1
67 auto testcase2 = 752080; /// Testcase 2
68
69 auto real_output1 = 354.045194855; /// Real Output 1
70 auto real_output2 = 867.225460881; /// Real Output 2
71
72 auto test_result1 = numerical_methods::babylonian_method(testcase1);
73 /// Test result for testcase 1
74 auto test_result2 = numerical_methods::babylonian_method(testcase2);
75 /// Test result for testcase 2
76
77 assert(std::max(test_result1, real_output1) -
78 std::min(test_result1, real_output1) <
79 0.0001);
80 /// Testing for test Case 1
81 assert(std::max(test_result2, real_output2) -
82 std::min(test_result2, real_output2) <
83 0.0001);
84 /// Testing for test Case 2
85
86 std::cout << "All tests have successfully passed!\n";
87}
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:31
Here is the call graph for this function: