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!
Top Related