PROMETHEUS - Organization of Development & Demonstration of Prototype Team E Ishan...

Preview:

Citation preview

PROMETHEUS - Organization of Development & Demonstration of

Prototype

Team E 

Ishan Monga-27720696

Ahmad Moumneh-26262481

Saketh Mudrakola-7394764

Muhammad Nadir-7143222

Jithin Nair-27093888

Rohan Nayak-6846696

Aman Ohri-27119801

OutlineOverviewAgile ImplementationAuxiliary FunctionFunctions implementedDecisions taken and rationaleTest ResultsConclusionReferences

Overview

To address the requirements and different set of choices for implementing the transcendental functions and the rationale for choosing the particular implementation from the set of different available algorithms.

To demonstrate organization of development and the use of agile methodology

Agile Implementation

Agile Methodology is followed in order to specify requirements for the implementation

Project development is divided into two iteration Agile has provided opportunity to deliver the functionality

with highest priority in the first Iteration Other things for instance improvement of precision,

generation of user interface and constraining the function’s output for specific inputs is parked for iteration two.

Auxiliary Functions

The auxiliary functions used are:

1.Factorial: fact(x)

2.PI()

3.e()

4.Power: power(x,y)

Advantages•increased reusability•reduced redundancy

Functions Implemented

Sine (x) Cos(x) 10^X XX √x ex πx

The Sine Function

sin(x) can be computed using the Taylor series expansion and the CORDIC algorithm.

Sin(x) = x – x^3/3! + x^5/5! – x^7/7! + …. We have chosen the Taylor series expansion to

implement sin(x) in PROMETHEUS for 2 reasons: It is easier and faster to implement and execute

sin(0) = 0.0, sin(30) = 0.5000001443377021 We chose the precision to be equal to 10 in order to

have better accuracy and good efficiency.

The Cosine Function

cos(x) can be computed using the logarithmic approached.

We have chosen the Taylor series expansion to

implement sin(x) in PROMETHEUS for 2 reasons: It is easier and faster to implement and execute

cos(0) = 1, cos(30) = 0.8660253204510115 We chose the precision to be equal to 10 in order to

have better accuracy and good efficiency.

The 10x Function

tenPower(x) can be computed using the power function, logarithmic approach

We used the auxiliary power function to take advantage of reusability

tenPower(0) = 1, tenPower(3) = 1000 The precision to be equal to that of the power

function. It cannot compute the values for real numbers as

inputs and will be considered in future iterations

The Xx Function

XPower(x) can be computed using the power function, exponentiation approach

We used the auxiliary power function to take advantage of reusability

XPower(0) = undefined, XPower(3) = 27 The precision to be equal to that of the power

function. It cannot compute the values for real numbers as

inputs and will be considered in future iterations

π and πx

PI() can be computed using the Gregory-Leibniz series and Nilakantha’s series. PIPower(x) is computed using PI() and power(x).\

πx = 4( ) We used the Gregory-Leibniz series to compute π; howerver, the

Nilakantha’s series is said to be more efficient and will be implemented in the next iteration.

PIPower(0) = 1, PIPower(3) = 31.006306289151429 The precision of PIPower(x) is equal to that of PI() which is

1000000. It cannot compute the values for real numbers as inputs and will

be considered in future iterations

The Root Function

rootofx(x) can be computed using the Babylonian method, Newton-Raphson method, the Guess-Evaluate-Improve method, and the nth root algorithm.

We used nth root algorithm and we assigned n = 2 to compute

root of x. As such, we can compute rootofx(x) for real numbers in the next interation.

rootofx(0) = 0, rootofx(4) = 2 The precision to be equal 1000000 It cannot compute the values for real numbers as inputs and will

be considered in future iterations

The ex Function

e(x) can be computed using power series of any given x, using the e(x) - y = 0 equation, and using exponential property.

We used the exponential property to compute e(1) and we

used the power function to computer e(x). We went with this approach because we thought it was easier and faster to implement and execute

e(0) = 1, e(1) = 2.718281826198493 The precision to be equal 1000000 It cannot compute the values for real numbers as inputs

and will be considered in future iterations

Future Scope

The current implementation doesn’t give results for real numbers.

More efficient power function will be developed for giving the results for real numbers.

The current user interface is textual. A GUI is planned for the next iteration.

An After-Scenario questionnaire will be used for unanticipated change.

Conclusion

Major decisions are also influenced by the accuracy of the outputUse of agile methodology facilitate to prioritize the requirementsRelation between software engineering and mathematics is realized with the implementation

References

'Software Requirements Document A Multi-Function Calculator', 2015. [Online]. Available: http://www2.cs.uidaho.edu/~rinker/cs113/calculator.pdf.

L. Chung, 'Non-Functional Requirements: Soft is harder to deal with than hard - The Ten Commandments (Requirements Management Blog)', Ibm.com, 2013. [Online]. Available: https://www.ibm.com/developerworks/community/blogs/requirementsmanagement/entry/non-functional-requirements?lang=en.

Wikipedia, 'Sine', 2015. [Online]. Available: http://en.wikipedia.org/wiki/Sine.

Dotancohen.com, 'Taylor series for sine or sinus', 2015. [Online]. Available: http://dotancohen.com/eng/taylor-sine.php.

Wikipedia, 'Taylor series', 2015. [Online]. Available: http://en.wikipedia.org/wiki/Taylor_series.

Thank You!

Recommended