Data Analysis Mathematics Linear Algebra Statistics
New Version 7.0!  QuickStart Samples

# Elementary Functions QuickStart Sample (IronPython)

Illustrates how to use additional elementary functions in IronPython.

```import numerics

from math import *

# We use many classes from the Extreme.Mathematics namespace.
from Extreme.Mathematics import *

#/ Illustrates the use of the elementary functions implemented
#/ by the Elementary class in the Extreme.Mathematics.Curve namespace of
#/ the Extreme Optimization Mathematics Library for .NET.

# This QuickStart sample deals with elementary
# functions, implemented in the Elementary class.

#
# Elementary functions
#

# Evaluating Log(1+x) directly causes significant
# round-off error when x is close to 0. The
# Log1PlusX function allows high precision evaluation
# of this expression for values of x close to 0:
print "Logarithm of 1+1e-12"
print "  Math.Log:", log(1+1e-12)
print "  Log1PlusX:", Elementary.Log1PlusX(1e-12)

# In a similar way, Exp(x) - 1 has a variant, # ExpXMinus1, for values of x close to 0:
print "Exponential of 1e-12 minus 1."
print "  Math.Exp:", exp(1e-12) - 1
print "  ExpMinus1:", Elementary.ExpMinus1(1e-12)

# The hypotenuse of two numbers that are very large
# may cause an overflow when not evaluated properly:
print "Hypotenuse:"
a = 3e200
b = 4e200
print "  Simple method: "
try:
sumOfSquares = a*a + b*b
Math.Sqrt(sumOfSquares)
except: # (OverflowException)
print "Overflow!"
print "  Elementary.Hypot:", Elementary.Hypot(a, b)

# Raising numbers to integer powers is much faster
# than raising numbers to real numbers. The
# overloaded Pow method implements this:
print "2.5^19 =", Elementary.Pow(2.5, 19)
# You can raise numbers to negative integer powers
# as well:
print "2.5^-19 =", Elementary.Pow(2.5,-19)```