Q  (v9.3 – Nov 19, 2016)

### ComputeSoup – Web Computational Engine (Equation/Expression Evaluation)

Expr Enter expression in this box

CrunchJr

CrunchJr is a powerful computational engine which is a superset of the capabilities found on this web site.   It is available as a 99¢ iPhone/iPad app.  It has 250+ MiniApps, 300+ Functions, and a wide variety of other handy features.   For an overview, visit www.crunchjr.com.

### ComputeSoup – 235 Functions

Function Args Results Prototype/Description Expr Use?
Abs  1 1   Abs( x ):  Absolute value of x  Yes
Acos  1 1   Acos( x ):  Arccosine of x  (–1  ≤  x  ≤  1)  Yes
Acosh  1 1   Acosh( x ):  Arc hyperbolic cosine of x  (x ≥ 1).
Acosh(x)  =  2*Ln(√½(x+1)  + √½(x–1)
Yes
AltBase  2 1   AltBase( int, newBase ):  Display int in base newBase.  Both arguments are integers, and (2 ≤ newBase ≤ 36)  No
Amdahl  2 1   Amdahl( nProcessors, pcParallel ): Amdahl's Law – the maximum theoretical speedup from using nProcessors processors on an application with pcParallel percent parallelism (0 < pcParallel < 100)  Yes
Antilog  1 1   Antilog( x ):  Inverse logarithm – the number whose logarithm is x  Yes
AreaBrick  3 1   AreaBrick( length, width, depth ):  Area of the rectangular solid with sides length, width, and depth.
AreaBrick(l,w,d)  =  2(lw+wd+dl)
Yes
AreaCircle  1 1   AreaCircle( radius ):  Area of the circle with radius radius.
AreaCircle(r)  =  πr²
Yes
AreaCone  2 1   AreaCone( radius, height ):  Area of a right cone of radius radius and height height  (does not include the base).
AreaCone(r,h)  =  πr√r² + h²
Yes
AreaCube  1 1   AreaCube( side ):  Area of a cube of side side.
AreaCube(s)  =  6s²
Yes
AreaCylinder  2 1   AreaCylinder( radius, height ):  Area of a right cylinder of radius radius and height height  (does not include base, top).
AreaCylinder(r,h)  =  2πrh
Yes
AreaEllipse  2 1   AreaEllipse( axis1, axis2 ):  Area of an ellipse with semiaxes of axis1 and axis2
AreaEllipse(a,b)  =  πab
Yes
AreaFrustum  3 1   AreaFrustum( baseRadius, topRadius, height ):  Area of the curved surface of the frustum of a right cone with base radius baseRadius, top radius topRadius, and height height
AreaFrustum(b,t,h)  =  π(b+t)√h²+(b–t)²
Yes
Function Args Results Prototype/Description Expr Use?
AreaLune  2 1   AreaLune( radius, inclination ):  Area of a lune on the surface of a sphere of radius radius included between two great circles whose inclination is inclination degrees:
AreaLune(r,A)  =  2πr²A/180
Yes
AreaOblSpheroid  2 1   AreaOblSpheroid( majorSemiAxis, minorSemiAxis ):  Given an ellipse with major semiaxis majorSemiAxis and minor semiaxis minorSemiAxis, with (majorSemiAxis > minorSemiAxis), an oblate spheroid is formed by the rotation of the ellipse about its minor axis.  The surface area of an oblate spheroid is given by:
AreaOblSpheroid(a,b)  =  π((2a²+(b²/E)*Ln((1+E)/(1–E)))
where E (Eccentricity) is:  E  =  √a²–b² /a
Yes
AreaProlSpheroid  2 1   AreaProlSpheroid( majorSemiAxis, minorSemiAxis ):  Given an ellipse with major semiaxis majorSemiAxis and minor semiaxis minorSemiAxis, with (majorSemiAxis > minorSemiAxis), a prolate spheroid is formed by the rotation of the ellipse about its major axis.  The surface area of an prolate spheroid is given by:
AreaProlSpheroid(a,b)  =  2π(b²+(ab*Asin(E)/E))
where E (Eccentricity) is:  E  =  √a²–b² /a
Yes
AreaPyramid  3 1   AreaPyramid( nSides, base, height ):  Lateral area of a regular pyramid of nSides sides, base dimension base (length of one side of base), and slant height height
AreaPyramid(n,b,h)  =  ½nbh
Yes
AreaRectangle  2 1   AreaRectangle( length, width ):  Area of of a rectangle of sides length and width
AreaRectangle(l,w)  =  lw
Yes
AreaRegPolygon  2 1   AreaRegPolygon( nSides, length ):  Area of a regular polygon with nSides sides, each of length length.  See also RegPolygon()
AreaRegPolygon(n,L)  =  nL²/(4tan(π/n))
Yes
AreaSphere  1 1   AreaSphere( radius ):  Area of a sphere of radius radius
AreaSphere(r)  =  4πr²
Yes
AreaSphPolygon  3 1   AreaSphPolygon( radius, nSides, angleSum ):  Area of a spherical polygon of nSides sides, where angleSum is sum of its angles (degrees), and radius is the sphere's radius:
AreaSphPolygon(r,n,S)  =  πr²((S/180)–(n–2)))
Yes
AreaSphSegment  2 1   AreaSphSeqment( radius, height ):  Area of a spherical segment of radius radius and height height
AreaSphSegment(r,h)  =  2πrh
Yes
AreaSphTriangle  4 1   AreaSphTriangle( radius, angle1, angle2, angle3 ):  Area of spherical triangle whose angles are angle1, angle2, angle3 (radians) on a sphere of radius radius
AreaSphTriangle(r,A,B,C)  =  (A+B+C–π)r²
Yes
AreaSquare  1 1   AreaSquare( side ):  Area of a square of side side
AreaSquare(s)  =  s²
Yes
AreaTriangle  2 1   AreaTriangle( base, height ):  Area of a triangle of base base and height height
AreaTriangle(b,h)  =  ½bh
Yes
ArithmeticLast  3 1   ArithmeticLast( firstTerm, delta, numb ):  The last element in the Arithmetic Progression defined by its first term (firstTerm), delta (delta), and number of elements (numb)
ArithmeticLast(a,d,n)  =  a+(n–1)d
Yes
Function Args Results Prototype/Description Expr Use?
ArithmeticSum  3 1   ArithmeticSum( firstTerm, delta, numb ):  The sum of the elements in the Arithmetic Progression defined by its first term (firstTerm), delta (delta), and number of elements (numb)
Eq. 1  ArithmeticSum(a,d,n)  =  ½n(2a+(n–1)d);
Note that if the last term is L, the sum may be computed as:
Eq. 2  ArithmeticSum(a,n,L)  =  ½n(a+L);
This program uses only Equation (1) above
Yes
Asin  1 1   Asin( x ):  Arcsine of x,  (–1  ≤  x  ≤  1)  Yes
Asinh  1 1   Asinh( x ):  Arc hyperbolic sine of x
Asinh(x)  =  Ln(x + √1+x²
Yes
Atan  1 1   Atan( x ):  Arctangent of x  Yes
Atan2  2 1   Atan2( x, y ):  Arctangent of x/y  (x = y = 0 is illegal).  Atan2() overcomes a limitation with Atan().  Specifically, with two arguments, Atan2() can return the angle in the correct quadrant  Yes
Atanh  1 1   Atanh( x ):  Arc hyperbolic tangent of x   (|x| < 1).
Atanh(x)  =  ½(Ln(1+x) – Ln(1–x))
Yes
Base  1 3   Base( int ):  Display the integer argument int in octal, hex and binary  No
Bernoulli  1 1   Bernoulli( n ):  The Bernoulli Numbers B(n), for n  =  {0,1,2,4,6,8,...,22},  where n is the integer argument  Yes
BernoulliOld  1 1   BernoulliOld( n ):  The (old-style) Bernoulli Numbers B*(n), for n  =  {1,2,3,...,11}, where n is the integer argument  Yes
BillSplit  3 text   BillSplit( bill, nShares, tipPercent ):  The (rounded) amount each of nShares people should pay towards a total bill of (bill + tip), where tip is tipPercent of bill.  Note that (nShares > 1) and need not be an integer, and (0 ≤ tipPercent ≤ 100).  See also Tip().  No
Binary  1 1   Binary( int ):  Display the integer argument int in binary  No
BitCount  1 1   BitCount( int ):  Return the number of 1 bits in the 32-bit integer argument int.  Same as PopCount()  Yes
Bmi  2 1   Bmi( weight, height ):  Body Mass Index – a measure of weight for height in adults.  As BMI increases, risk for many weight-related diseases increases.  Weight is weight (lbs), height is height (ins).  Approx results:  (<18.5 Underweight), (18.5–25 Normal), (25–30 Overweight), (>30 Obese)  Yes
BmiMetric  2 1   BmiMetric( weight, height ):  Body Mass Index – a measure of weight for height in adults.  As BMI increases, risk for many weight-related diseases increases.  Weight is weight (kgs), height is height (cms).  Approx results:  (<18.5 Underweight), (18.5–25 Normal), (25–30 Overweight), (>30 Obese)  Yes
Function Args Results Prototype/Description Expr Use?
Calories  5 text   Calories( activity, weight, dist, min, sec ):  Approximate calories consumed by various activities.  Arguments as in the table below.  For example: "Calories( running, 165, 3.25, 25, 20 )" yields "408 calories -- Running (165lbs, 3.25mi in 25:20 =>  7:48/mi = 7.70 mph)".  See also Fitness(), HeartRate(), Karvonen(), Points(), Bmi()
activity   weight     dist    min    sec ‡ Others | lbs miles min sec | Aerobicdance, Aerobicshi†, Aerobicslo†, Basketball, lbs miles min sec | Handball, Hockey, Iceskating, Judo, Karate, Lacrosse, lbs miles min sec | Pingpong, Racketball, Rollerblading, Rollerskating, lbs yards min sec | Rowing, Skiingcc†, Skiingdh†, Skiingwater, lbs yards min sec | Snowshoeing, Snowshoveling, Soccer, Squash, lbs meters min sec | Taichi, Tennisd†, Tenniss†, Volleyball, lbs meters min sec | Wateraerobics lbs rpm min sec | † Swimming__; my=(male,yards), fy=(female,yards); lbs # holes min sec | mm=(male,meters), fm=(female,meters); lbs # holes min sec | † Aerobics__;  lo=low-impact,  hi=high-impact lbs 0 min sec | † Skiing__;  cc=cross-country,  dh=downhill lbs # steps 0 0 | † Tennis_;  d=doubles,  s=singles

No
Capacitance  2-10 text   Capacitance( c1, c2, ...  ):  Capacitance for 2-10 capacitors (c1, c2, ...) in serial, parallel.  All args > 0.  No
Cartesian  2 Pair   Cartesian( dist, angle ):  The (x,y) coordinates of the point defined as dist units from the origin at the angle angle radians (that is, the arguments are the polar coordinates of the point)  No
Ceiling  1 1   Ceiling( int ):  The smallest integer ≥ int.  Same as Roundup().  Not to be confused with Trunc()  Yes
Celsius  1 1   Celsius( fahrDegrees ):  Convert Fahrenheit temperature (fahrDegrees) to Celsius.  Same as Centigrade().  See also Kelvin().
Celsius(F) = (5/9)*(F-32)  ≈  0.5555556*(F-32)
Yes
Centigrade  1 1   Centigrade( fahrDegrees ):  Convert Fahrenheit temperature (fahrDegrees) to Centigrade.  Same as Celsius().  See also Kelvin().
Centigrade(F)  =  (5/9)*(F–32)  ≈  0.5555556*(F–32)
Yes
CircumCircle  1 1   CircumCircle( radius ):  Circumference of a circle of radius radius.
CircumCircle(r)  =  2πr
Yes
CircumEllipse  2 1   CircumEllipse( axis1, axis2 ):  Approximate circumference of an ellipse with semiaxes axis1 and axis2.
CircumEllipse(a,b)  ≅  2π ½(a² + b²)   is a good approximation, but a slightly better estimating function (from Ramanujan) is actually used.
Yes
Colors  1,2,.. table   Colors( value1, value2, ... ):  Display the color and the Red, Green and Blue components of the values (max=16) in a table.  Value is an integer representation of the color (e.g., 0x3DB733), and is silently kept in the range (0 - 0xFFFFFF).  The values are sorted and duplicate values are silently ignored.  See also Rgb().  Same as RgbCompare().  No
Combinations  2 1   Combinations( nThings, numbAtATime ):  The number of combinations of nThings things taken numbAtATime at a time.  Both arguments are integers in (1–51), and (nThings > numbAtATime).
Combinations(m,n)  =  m!/(n!*(m–n)!)
Yes
ComplexAdd  4 (r, i)   ComplexAdd( real1, imag1,  real2, imag2 ):  Addition of two complex numbers:
ComplexAdd(a,b,c,d)  =  (a+bi) + (c+di)  =  ((a+c) + (b+d)i
No
ComplexDiv  4 (r, i)   ComplexDiv( real1, imag1,  real2, imag2 ):  Division of complex numbers:
ComplexDiv(a,b,c,d)  =  (a+bi)/(c+di
No
ComplexExp  2 (r, i)   ComplexExp( real, imag ):  Exponential of a complex number.
ComplexExp(a,b)  =  e(a+bi)
No
ComplexLn  2 (r, i)   ComplexLn( real, imag ):  Natural logarithm of a complex number.  No
ComplexMult  4 (r, i)   ComplexMult( real1, imag1,  real2, imag2 ):     Product of two complex numbers:
ComplexMult(a,b,c,d)  =  (a+bi)*(c+di
No
ComplexPower  3 (r, i)   ComplexPower( real, imag, x ):  Raise a complex number to a real power.
ComplexPower(a,b,c)  =  (a+bi)c
No
ComplexPower2  4 (r, i)   ComplexPower2( real1, imag1,  real2, imag2 ):  Raise a complex number to a complex power.
ComplexPower2(a,b,c,d)  =  (a+bi)(c+di)
No
ComplexRoots  3 (r, i)s   ComplexRoots( nRoots, real, imag ):  The nRoots roots of a complex number.  For nRoots = 3, the 3 cuberoots are generated  No
Function Args Results Prototype/Description Expr Use?
ComplexSqrt  2 (r, i)   ComplexSqrt( real, imag ):  The positive square root of a complex number.  When the result is (x + yi), the other root is (–x – yi).  Note that x ≥ 0 (always)  No
Cos  1 1   Cos( radians ):  Cosine of the angle radians (radians).  Same as Cosr()  Yes
Cosd  1 1   Cosd( degrees ):  Cosine of the angle degrees (degrees)  Yes
Cosh  1 1   Cosh( radians ):  Hyperbolic cosine of the angle radians (radians)
Cosh(x)  =  ½(ex + e–x
Yes
Cosr  1 1   Cosr( radians ):  Cosine of the angle radians (radians).  Same as Cos()  Yes
CrossProd  6 text   CrossProd( x1, y1, z1,   x2, y2, z2 ):   Show the cross product of the two input 3-D vectors (x1, y1, z1) and (x2, y2, z2) and the angle between them.  The cross product is a vector perpendicular to both input vectors and normal to the plane defined by them.  See also DotProd().  No
Cubert  1 1   Cubert( x ):  Cube root of x  Yes
Cubic  4 3 (r, i)s   Cubic( a, b, c, d ):  The roots to the 3rd order equation:
ax³ + bx² + cx + d  =  0,   where  (a ≠ 0)
No
DayOfWeek  3 text   DayOfWeek( year, month, day ):  Print day-of-week for input date: year > 1752, month (1-12) for (Jan-Dec) or the constants JAN, FEB, ... DEC, and day (1-lastDay), (28 ≤ lastDay=f(month,year) ≤ 31).  If the input is (0,0,0), use today.  See also DayOfYear(), DayOfYear2().  No
DayOfYear  3 text   DayOfYear( year, month, day ):  Print day-of-year for input date: year > 1752, month (1-12) for (Jan-Dec) or the constants JAN, FEB, ... DEC, and day (1-lastDay), (28 ≤ lastDay=f(month,year) ≤ 31).  If the input is (0,0,0), use today.  See also DayOfWeek(), DayOfYear2().  No
DayOfYear2  2 text   DayOfYear2( year, dayNumb ):  Print the date (day-of-week, month, day) for the dayNumbth day of year year,  (1753 ≤ year ≤ 9999),  (1 ≤ dayNumb ≤ 366).  See also DayofWeek(), DayOfYear().  No
DaysAway  4 text   DaysAway( nDays, year, month, day ):  Display the date of the day which is nDays from year, month, day.  (1752 < year < 10000),  month (1-12) for (Jan-Dec) or the constants JAN, FEB, ... DEC,  and day (1-lastDay) (28 ≤ lastDay=f(month,year) ≤ 31).  If date is (0,0,0), use today.  nDays may be postive or negative.  Note that the computation of years/days goes in the direction of nDays.  That is, DaysAway( 740,  1994,FEB,22 ) will yield:   Tuesday, February 22, 1994 → Sunday, March 3, 1996  =  740 days  =  2 years, 10 days,  but DaysAway( -740,  1996, MAR, 3 ) will yield:  Tuesday, February 22, 1994 ← Sunday, March 3, 1996  =  740 days  =  2 years, 9 days.  See also DaysBetw().  No
DaysBetw  6 text   DaysBetw( year1, month1, day1,   year2, month2, day2 ):  Display the number of days between date1 (1st 3 arguments) and date2 (2nd 3 arguments).  (1752 < year < 10000),  month (1-12) for (Jan-Dec) or the constants JAN, FEB, ... DEC,  and day (1-lastDay) (28 ≤ lastDay=f(month,year) ≤ 31).  If date* is (0,0,0), use today.  Note that the computation of years/days goes from the first date to the second date.  That is, DaysBetw( 2007, FEB, 15,   2008, MAR, 25 )  will yield:  Thursday, February 15, 2007 → Tuesday, March 25, 2008  =  404 days  =  1 year, 39 days,  but  DaysBetw( 2008, MAR, 25,  2007, FEB, 15 ) will yield:  Thursday, February 15, 2007 ← Tuesday, March 25, 2008  =  404 days  =  1 year, 38 days.  See also DaysAway().  No
DaysSince  1, 2 text   DaysSince( holiday )  -or-  DaysSince( month, day ):  Display number of days since the last occurrence of the specified date.  Holiday may be one of { CHRISTMAS, THANKSGIVING, VALENTINES, MOTHERS, FATHERS, SUMMER, FALL, WINTER, SPRING, LABOR, MEMORIAL, JAN, FEB, ... DEC }, among others.  Month (1-12) for (Jan-Dec) or the constants JAN, FEB, ... DEC,  and day (1-lastDay) (28 ≤ lastDay=f(month,year) ≤ 31).  Click Constants for a full list.  See also DaysTil(), DaysAway(), DaysBetw().  No
DaysTil  1, 2 text   DaysTil( holiday )  -or-  DaysTil( month, day ):  Display number of days til the next occurrence of the specified date.  Holiday may be one of { CHRISTMAS, THANKSGIVING, VALENTINES, MOTHERS, FATHERS, SUMMER, FALL, WINTER, SPRING, LABOR, MEMORIAL, JAN, FEB, ... DEC }, among others.  Month (1-12) for (Jan-Dec) or the constants JAN, FEB, ... DEC,  and day (1-lastDay) (28 ≤ lastDay=f(month,year) ≤ 31).  Click Constants for a full list.  See also DaysSince(), DaysAway(), DaysBetw().  No
Degrees  1 1   Degrees( radians ):  Convert radians (radians) to degrees:
Degrees(r)  =  180r/π  =  r × RADIANS2D  ≈  r × 57.29578
Yes
Distance  4 1   Distance( x1, y1,  x2, y2 ):  Compute the distance between two points, (x1, y1) and (x2, y2), on the X-Y plane.  See also Line().  Yes
Distance3D  6 1   Distance3D( x1, y1, z1,  x2, y2, z2  ):  Given two data points in 3-D space, (x1, y1, z1) and (x2, y2, z2), compute the distance between them.  See also Line3D().  Yes
DotProd  6 text   DotProd( x1, y1, z1,   x2, y2, z2 ):   Show the dot product of the two input 3-D vectors (x1, y1, z1) and (x2, y2, z2) and the angle between them.  The dot product is a scalar value also known as the inner product and the scalar product.   See also CrossProd().  No
EasterDate  1 text   EasterDate( year ):  Easter for year  =  year > 1752.  (Note:  Easter falls between March 22 and April 25)  No
Function Args Results Prototype/Description Expr Use?
EffectiveRate  2 text   EffectiveRate( nominalRate, nPerYear ):  The effective annual rate for a nominal interest rate nominalRate, compounded nPerYear times per year.  NominalRate must be > 0,and nPerYear is an integer > 1.  The "nominal rate" is the rate per compound period.  For example, if a credit card charges a nominal 1.5%/month, the effective annual rate is 19.5618% (not 18%).  See also NominalRate().  No
Emc2  1 1   Emc2( mass ):   The rest energy (joules) equivalent to the mass mass (kg).  Energy computed using Einstein's famous equation:  e = mc².  For example, 1 gram  ≈  89.9×1012 joules  ≈  24.9×106 kwH  ≈  21.5×109 kCal   ≈  85.2×109 BTUs  ≈  21.5 kilotons of TNT  Yes
Erf  1 1   Erf( x ):  Error function of x  Yes
Erfc  1 1   Erfc( x ):  Complementary error function of x
Erfc(x)  =  1 – Erf(x)
Yes
Exp  1 1   Exp( x ):   Exponential of x
Exp(x)  =  ex
Yes
Expm1  1 1   Expm1( x ):   Exponential of (x) - 1.0  —  accurate even for very small values of x
Expm1(x) = ex–1
Yes
Factor  1 mult   Factor( int ):  List all the prime values which divide evenly (with no remainder) into integer int.  Max value for int is (231–1)  =  2,147,483,647  No
Factorial  1 1   Factorial( int ):  The product of all the integers from 1 to integer int,  where int must be in the range (0–143).  Note that by definition, Factorial(0)  =  0!  =  1.
Factorial(n)  =  n!  =  1*2*3*...*n
Yes
Fahr  1 1   Fahr( centigrade ):  Convert Centigrade (Celsius) temperature centigrade to Fahrenheit.  Same as Fahrenheit().
Fahr(c)  =  1.8c+32
Yes
Fahrenheit  1 1   Fahrenheit( centigrade ):  Convert Centigrade (Celsius) temperature centigrade to Fahrenheit.  Same as Fahr().
Fahrenheit(c)  =  1.8c+32
Yes
Fib  1 1   Fib( int ):  The intth element in the Fibonacci series {Fib(n), n = 0,1,2,3,...}.  Same as Fibonacci()
Fib(0) = 0,  Fib(1) = 1,   Fib(n) = Fib(n–2)+Fib(n–1)
Yes
Fibonacci  1 1   Fibonacci( int ):  The intth element in the Fibonacci series {Fibonacci(n), n = 0,1,2,3,...}.  Same as Fib()
Fibonacci(0) = 0,  Fibonacci(1) = 1,  Fibonacci(n) = Fibonacci(n–2)+Fibonacci(n–1)
Yes
Fitness  5 text   Fitness( code, gender, age, val1, val2 ):  Determine fitness level by taking one of six basic fitness tests (based on Dr Kenneth Cooper's "Aerobics" books).  The tests are either Distance traveled in a specified time or Time to cover a specified distance for walking, running, swimming or cycling.  Result is one of {VeryPoor, Poor, Fair, Good, Excellent, Superior}.  Consult a physician before taking any of these tests.  Warm up appropriately before starting a test.  See also HeartRate(), Karvonen(), Points(), Calories(), Bmi().  code = test code (1–6), gender is gender (0,1) = (Male,Female), age is age (years), val1 and val2 are as below
Test   code     gender    age    val1   val2  Test   code     gender    age    val1 | 1 (0,1) yrs min sec | 4 (0,1) yrs mi 0 2 (0,1) yrs min sec | 5 (0,1) yrs yds 0 3 (0,1) yrs mi 0 | 6 (0,1) yrs m 0

No
Floor  1 1   Floor( x ):  The greatest integer ≤ x.  Same as Rounddown().  Not to be confused with Trunc()  Yes
Function Args Results Prototype/Description Expr Use?
Force  2 1   Force( mass, acc )  The net force (newtons) on an object of mass mass (kg) which induces an acceleration of acc (m/s²).  This is Newton's Second Law of Motion:  F = ma Yes
FutureValue  4 1   FutureValue( principal, years, rate, nPerYear ):  The amount to which principal principal will accumulate in years years at an annual interest rate of rate percent compounded nPerYear times per year.  If nPerYear is zero, simple interest is used.  Years and nPerYear are integers.  See also PresentValue(), Ira(), IraProfile().  Yes
Gcd  2-10 1   Gcd( n1, n2, ..., n10 )  Greatest common divisor (also known as greatest common factor (gcf)).  The largest positive integer that divides the 32-bit positive integer arguments evenly (no remainder).  Special case:  GCD(0,0) = 0  Yes
GeometricLast  3 1   GeometricLast( firstTerm, ratio, nElements ):  The last element in the Geometric Progression defined by its first term (firstTerm), ratio (ratio), and number of elements (nElements).  nElements is an integer > 1, and ratio ≠ one or zero.
GeometricLast(a,r,n)  =  ar(n–1)
Yes
GeometricMean  2,3,.. 1   GeometricMean( x1, x2, ... ) :  Geometric mean of the arguments (all > 0).  Not related to GeometricSum(), GeometricLast()  Yes
GeometricSum  3 1   GeometricSum( firstTerm, ratio, nElements ): The sum of the elements in the Geometric Progression defined by its first term (firstTerm), ratio (ratio), and number of elements (nElements).  nElements is an integer > 1, and ratio ≠ one or zero.
Eq. 1:  GeometricSum(a,r,n)  =  a(rn–1)/(r–1))
Note that if the last term is L, the sum may be computed as:
Eq. 2:  GeometricSum(a,r,L)  =  (Lr–a)/(r–1)
Further, for n = ∞, and r² < 1.0;
Eq. 3:  GeometricSum(a,r)  =  a(1–r)
This program uses only Eq 1 above
Yes
GSeries  3 1   GSeries( firstElement, secondElement, int ):  The intth element in the Generalized Fibonacci Series {Gseries(n), n = 0,1,2,3,...}, defined as:  GSeries(0) = firstElement,  GSeries(1) = secondElement,  GSeries(n)  =  GSeries(n–2)+GSeries(n–1)  Yes
HarmonicMean  2,3,.. 1   HarmonicMean( x1, x2, ... ):  Harmonic mean of the arguments (all arguments > 0)  Yes
HeartRate  2 text   HeartRate( age, restingPulse ):  Display maximum and various other workout-related target heart rates: age is age (integer, (10–100)), and restingPulse is resting heart rate (integer, (35–90)).  Same as Karvonen().  No
HeatIndex  2 text   HeatIndex( temp, humidity ):  Display the heat index for a given temperature temp (°F) and relative humidity humidity (%).  The heat index is an approximation of the temperature humans perceive.  (temp > 68°F,  humidity > 40).  No
HeatIndexMetric  2 text   HeatIndexMetric( temp, humidity ):  Display the heat index for a given temperature temp (°C) and relative humidity humidity (%).  The heat index is an approximation of the temperature humans perceive.  (temp > 20°C,  humidity > 40).  No
Hex  1 1   Hex( int ):  Display the integer argument int in hexadecimal  No
Holiday  1 table   Holiday( month ):  List the holidays in month month.  If month is not in JAN – DEC (1–12), list all the holidays.  No
Horizon  1 1   Horizon( ht ):  Approximate distance (miles) to the horizon (on Earth) from a height of ht feet (ht > 0)
Horizon(h) = √ 2Reh + h²     {Note, when (h << Re),  Horizon(h) ≈ 1.224 √
Yes
HorizonMetric  1 1   Horizon( ht ):  Approximate distance (km) to the horizon (on Earth) from a height of ht meters (ht > 0)
Horizon(h) = √ 2Reh + h²     {Note, when (h << Re),  Horizon(h) ≈ 3.568√
Yes
Horizon2  2 1   Horizon2( radius, ht ):  Approximate distance (miles) to the horizon on a sphere of radius radius miles from a height of ht feet (ht > 0).  See also Horizon().  Horizon2( RADIUSEARTH, h ) is the same as Horizon( h ).  Horizon2( RADIUSMOON, h ) is the approximate distance (miles) to the horizon from a height of h feet on the Moon.
Horizon(r,h) = √ 2rh + h²
Yes
Horizon2Metric  2 1   Horizon2Metric( radius, ht ):  Approximate distance (km) to the horizon on a sphere of radius radius (km) from a height of ht meters (ht > 0).  See also Horizon2().  Horizon2Metric( RADIUSEARTH×KMPMI, h ) is the same as HorizonMetric( h ).  Horizon2Metric( RADIUSMARS×KMPMI, h ) is the approximate distance (km) to the horizon from a height of h meters on Mars.
Horizon(r,h) = √ 2rh + h²
Yes
Int  1 1   Int( x ):  The integer component of x.  Same as Trunc().  Not to be confused with Rounddown() or Roundup().
x Int(x) Rounddown(x) Roundup(x)
2.718  223
–2.718  –2–3–2

Yes
Integrate  3 text   Integrate( a, b, expr ):  a b{expr(x)} dx.  Approximate result of integrating the expression (expr) from a to bA and b are the lower and upper bounds of the (dummy) variable in expr, and must be constants with (ab).  The expression expr must have exactly one variable, must be single-valued, and may be a single user-defined function or an expression with no user-defined functions.  The expression expr must be continuous over the specified range, and may include any single-valued function except Rand() and IRand().  Unpredictable results may occur when expr is not continuous or is otherwise ill-behaved.  Same as Quadrature(), except Quadrature() always shows convergence of the approximate solution.  Quadrature() is strongly recommended.   No
Inv  1 1   Inv( x ):  Inverse of argument x  (x ≠ 0)
Inv(v)  =  1/v
Yes
Ira  4 1   Ira( currValue, addition, rate, years ):  The value of an investment (e.g., an IRA) in the future.  CurrValue is the current value, addition is the yearly addition to (or withdrawal from) the investment, rate is the annual interest rate (e.g., 5.25), and years is the duration (years).  Ira() assumes Jan 1 investments and reports results for Dec 31.  See also IraProfile(), FutureValue()  Yes
IRand  2 1   IRand( m, n ):  Return a random integer value between integers m and n.
Notes: (1) not reproducible,   (2) IRand(0,1) is like a coin flip
Yes
Function Args Results Prototype/Description Expr Use?
IraProfile  4 table   IraProfile( currValue, addition, rate, years ):  Show lifetime investment progress (e.g., an IRA).  CurrValue is the current value, addition is the yearly addition to (or withdrawal from) the investment, rate is the annual interest rate (e.g., 5.25), and years is the lifetime (years).  IraProfile() assumes Jan 1 investments and reports results for each Dec 31.  See also Ira(), FutureValue()  No
Karvonen  2 text   Karvonen( age, restingPulse ):  Display maximum and various other workout-related target heart rates: age is age (integer, (10–100)), and restingPulse is resting heart rate (integer, (35–90)).  Same as HeartRate().  No
Kelvin  1 1   Kelvin( celsiusDegrees ):  Convert Celsius temperature (celiusDegrees) to Kelvin.  See also Rankine().
Kelvin(C)  =  C+273.15
Yes
KEnergy  2 1   KEnergy( mass, velocity ):  Kinetic Energy of an object of mass mass moving at a constant velocity velocity.  When mass is in kg and velocity is m/sec, KEnergy is J (joules);  when mass is in lb and velocity is ft/sec, KEnergy is in ft-lbf.  See also PEnergy().
KEnergy(m,v)  =  ½mv²
Yes
Lcm  2-10 1   Lcm( n1, n2, ..., n10 )  Least common multiple (also, lowest common factor (lcf)).  The smallest positive integer that is a multiple of the 32-bit positive integer arguments.  Special case: if any argument is zero, the LCM is defined to be zero.  Yes
LeapYear  1 1   LeapYear( year ):  Return 1 if year is a leap year,  0 otherwise.  (1753 ≤ year ≤ 9999).  Yes
Line  4 text   Line( x1, y1,  x2, y2 ):  Given two data points on the X-Y plane, (x1, y1) and (x2, y2), compute the slope (m), the y-intercept (b), the distance between the two points, the midpoint, and show the equation of the line containing the points.  Same as Ymxb().  See also Line3D().  No
Line3D  6 text   Line3d( x1, y1, z1,  x2, y2, z2 ):  Given two data points in 3D space (X-Y-Z), (x1, y1, z1) and (x2, y2, z2), compute the equation of the line, the distance between the 2 points, the direction vector from point1 to point2, the midpoint, and the X-Y, X-Z, Y-Z slopes.  See also Line().  No
Ln  1 1   Ln( x ):  Natural logarithm of x,  (x > 0).  The power to which e (2.718281828459...) must be raised to yield x  Yes
Ln1p  1 1   Ln1p( x ):  Natural logarithm of (x+1),  (x > −1).  See Ln()  Yes
Log  1 1   Log( x ):  Logarithm (base 10) of x,  (x > 0).   The power to which 10 must be raised to yield x  Yes
Log2  1 1   Log( x ):  Logarithm (base 2) of x,  (x > 0).   The power to which 2 must be raised to yield x  Yes
Lucas  1 1   Lucas( int ):  The intth element in the Lucas series {Lucas(n), n = 0,1,2,3,...}.
Lucas(0) = 2,   Lucas(1) = 1,  Lucas(n) = Lucas(n–2)+Lucas(n–1)
Yes
MatrixDet  5,10,17 1   MatrixDet( N,  x11, x12, ...,  xNN ) ):  Determinant of the N × N matrix.  ( 2 ≤ N ≤ 4 ).  See also MatrixInv()   Yes
MatrixInv  5,10,17 table   MatrixInv( N,  x11, x12, ...,  xNN ) ):  Inverse of the N × N matrix.  ( 2 ≤ N ≤ 4 ).  See also MatrixDet()  No
Max  2,3,.. 1   Max( x1, x2, ... ):  Maximum of the arguments  Yes
MaxAbs  2,3,.. 1   MaxAbs( x1, x2, ... ):  Maximum of the absolute values of the arguments  Yes
MidPt  4 text   MidPt( x1, y1,  x2, y2 ):  Given two data points on the X-Y plane, (x1, y1) and (x2, y2), display the coordinates of the midpoint of the line defined by the two points.  See also Line(), Ymxb(), Line3D().   No
MidPt3D  6 text   MidPt3D( x1, y1, z1,  x2, y2, z2  ):  Given two data points in 3-D space, (x1, y1, z1) and (x2, y2, z2), display the coordinates of the midpoint of the line defined by the two points.  See also MidPt(), Line3D().  No
Min  2,3,.. 1   Min( x1, x2, ... ):  Minimum of the arguments  Yes
MinAbs  2,3,.. 1   MinAbs( x1, x2, ... ):  Minimum of the absolute values of the arguments  Yes
Mod  1 1   Mod( value, divisor ):  The remainder from dividing value by divisor,  (divisor ≠ 0).  Arguments and result may be real numbers.  Yes
Function Args Results Prototype/Description Expr Use?
Mortgage  3 1   Mortgage( loan, rate, years ):  The Monthly Mortgage Payment for a loan of loan dollars at rate annual percent for years years.  Result is composed of principal and interest only; escrow (e.g., taxes, insurance) is not included in the computation.  See also Refinance() and the Payoff*() functions.
Mortgage(P,R,Y)  =  (rP)/(1–(1/(1+r)m))   where  r = R/12, and  m = Y*12
Yes
NominalRate  2 text   NominalRate( effectiveRate, nPerYear ):  The nominal rate for an effective annual interest rate (effectiveRate), compounded nPerYear times per year.  (effectiveRate > 0), and nPerYear is an integer > 1.  The "nominal rate" is the rate per compound period.  See also EffectiveRate().  No
Normalize  2,3,.. mult   Normalize( x1, x2, ... ):  Normalize a multi-element vector.  At least one element must be non-zero.  Divide each element by the vector length := Sqrt(sum of the squares of the elements)  No
Normalize2  2,3,.. mult   Normalize2( x1, x2, ... ):  Normalize a multi-element vector.  At least one element must be non-zero.  Divide each element by the value of the largest of the absolute values of the elements.  Normalize() is the more mathematically rigorous form.  No
Normalize3  2,3,.. mult   Normalize3( x1, x2, ... ):  Normalize a multi-element vector.  At least one element must be non-zero.  Divide each element by the sum of the absolute values of the elements.  Normalize() is the more mathematically rigorous form.  No
Octal  1 1   Octal( int ):  Display the integer argument int in octal.  No
OhmsLaw  4 text   OhmsLaw( power, voltage, current, resistance ):  Compute electrical parameters.  Set two of the four arguments to zero and two to non-zero to compute the value of the two zero arguments:
power  =  Power (watts)
voltage  =  Voltage (volts)
current  =  Current (amps)
resistance  =  Resistance (ohms)
No
Payoff  4 table   Payoff( principal, rate, years, extra ):  Show impact of extra amount submitted with each mortgage payment starting at the first payment:
principal  =  Initial loan amount (principal)
rate  =  Annual interest rate (percent - e.g., 7.125)
years  =  Number of years of initial loan
extra  =  Extra amount with each payment (must be > 0)
Same as PayoffExtra().  See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
Payoff2  4 table   Payoff2( payment, rate, balance, extra ):  Show impact of extra amount submitted with each future mortgage payment when the loan is partly paid off:
payment  =  Monthly payment (principal + interest only: no escrow)
rate  =  Annual interest rate (percent - e.g., 6.75)
balance  =  Current balance (principal)
extra  =  Extra amount with each payment (must be > 0)
Same as PayoffExtra2().  See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
Function Args Results Prototype/Description Expr Use?
PayoffBiweekly  4 table   PayoffBiweekly ( principal, rate, years, extra ):   Show impact of bi-weekly mortgage payments starting at the first payment.  This technique calls for making payments every other week, each at exactly ½ of the monthly payment.  Paying more per year (approximately 13/12 as much) leads to a reduced total out-of-pocket expenditure.  Note that the real advantage of this technique is convenience (payments synchronized with bi-weekly paychecks) – one could realize about the same out-of-pocket savings by paying 1/12th more with each regular monthly payment.  This computation assumes that there is no extra charge for this payment schedule.
principal = Initial loan amount (principal)
rate = Annual interest rate (percent - e.g., 5.875)
years = Number of years of initial loan
extra = Extra amount with each biweekly payment (must be ≥ 0)
(Set extra to zero to get biweekly impact only)
See also Refinance(), Mortgage(), and the other Payoff*() functions
No
PayoffBiweekly2  4 table   PayoffBiweekly2 ( payment, rate, balance, extra ):   Show impact of shifting to bi-weekly mortgage payments for a partly paid off loan.  This technique calls for making payments every other week, each at exactly ½ of the previous monthly payment.  Paying more per year (approximately 13/12 as much) leads to a reduced total out-of-pocket expenditure.  Note that the real advantage of this technique is convenience (payments synchronized with bi-weekly paychecks) – one can realize about the same out-of-pocket savings by paying 1/12th more with each regular monthly payment.  This computation assumes that there is no extra charge for this payment schedule.
payment = Monthly payment (principal + interest only: no escrow)
rate = Annual interest rate (percent - e.g., 6.35)
balance = Current balance (principal)
extra = Extra amount with each biweekly payment (must be ≥ 0)
(Set extra to zero to get biweekly impact only)
See also Refinance(), Mortgage(), and the other Payoff*() functions
No
PayoffExtra  4 table   PayoffExtra( principal, rate, years, extra ):  Show impact of extra amount submitted with each mortgage payment starting at the first payment:
principal  =  Initial loan amount (principal)
rate  =  Annual interest rate (percent - e.g., 7.125)
years  =  Number of years of initial loan
extra  =  Extra amount with each payment (must be > 0)
Same as Payoff().  See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
PayoffExtra2  4 table   PayoffExtra2( payment, rate, balance, extra ):  Show impact of extra amount submitted with each future mortgage payment when the loan is partly paid off:
payment  =  Monthly payment (principal + interest only: no escrow)
rate  =  Annual interest rate (percent - e.g., 6.75)
balance  =  Current balance (principal)
extra  =  Extra amount with each payment (must be > 0)
Same as Payoff2().  See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
PayoffLump  4 table   PayoffLump( payment, rate, balance, lumpSum ):  Show impact of a single lump sum payment on a partly paid off mortgage payoff profile:
payment  =  Monthly payment (principal + interest only: no escrow)
rate  =  Annual interest rate (percent, e.g., 6.25)
balance  =  Current balance (principal)
lumpSum  =  Lump sum payment (must be > 0)
See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
Function Args Results Prototype/Description Expr Use?
PayoffProfile  5 text   PayoffProfile( principal, rate, years, extra, nYears ): Show a payoff profile (with monthly details) while paying off a new mortgage starting at the first payment.  Set extra to zero to get the standard payoff profile:
principal = Initial loan amount (principal)
rate = Annual interest rate (percent - e.g., 5.875)
years = Number of years of initial loan
extra = Extra amount with each payment (must be ≥ 0)
nYears = Number of years for which to show monthly results (1-5, silently enforced)
See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
PayoffProfile2  5 text   PayoffProfile2( payment, rate, balance, extra, nYears ):  Show a payoff profile (with monthly details) while paying off a partly paid off mortgage.  Set extra to zero to get the standard payoff profile:
payment = Monthly payment (principal + interest only: no escrow)
rate = Annual interest rate (percent - e.g., 5.75)
balance = Current balance (principal)
extra = Extra amount with each payment (must be ≥ 0)
nYears = Number of years for which to show monthly results (1-5, silently enforced)
See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
PayoffSurvey  3 table   PayoffSurvey( payment, rate, balance ):  Show impact of various (internally generated) prepayment options on a partly paid off mortgage payoff profile:
payment  =  Monthly payment (principal + interest only: no escrow)
rate  =  Annual interest rate (percent - e.g., 7.5)
balance  =  Current balance (principal)
See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
PayoffView  3 text   PayoffView( principal, rate, years  ): Show characteristics of paying off a new mortgage at the normal rate starting at the first payment
principal = Initial loan amount (principal)
rate = Annual interest rate (percent - e.g., 5.875)
years = Number of years of initial loan
See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
PayoffView2  3 text   PayoffView2( payment, rate, balance ):  Show characteristics of paying off a partly paid off mortgage at the normal rate:
payment  =  Monthly payment (principal + interest only: no escrow)
rate  =  Annual interest rate (percent - e.g., 6.875)
balance  =  Current balance (principal)
See also Refinance(), Mortgage(), and the other Payoff*() functions.
No
Function Args Results Prototype/Description Expr Use?
PEnergy  3 1   PEnergy( mass, height, units ):  Potential Energy of an object of mass mass at rest at a height of heightUnits sets the units.  When units is zero, {PEnergy, mass, height} are {J, kg, m}, otherwise {ft-lbf, lb, ft}.
PEnergy(m,h,u)  =  gmh,  where g is the standard gravity in "u"-specified units.
Yes
Permutations  2 1   Permutations( nThings, nPer ):  The number of different ways that nPer things may be selected from nThings things.  Both arguments must be integers in (1–51), and (nThings > nPer)
Permutations(m,n)  =  m!/(m–n)!
Yes
Plane2  8 text   Plane2( A1, B1, C1, D1,  A2, B2, C2, D2 ):   Given two planes in the form "Ax + By + Cz + D = 0", display the angle between them and the equation of the line at their intersection.  See also PlaneLine(), PlanePoint(), PlanePt3().  No
PlaneLine  10 text   PlaneLine( x1, y1, z1,  x2, y2, z2,  A, B, C, D ):   Show the intersection coordinates of the line defined by (x1,y1,z1) and (x2,y2,z2) and the plane defined by Ax + By + Cz + D = 0.  See also Plane2(), PlanePoint(), PlanePt3().  No
PlanePoint  7 text   PlanePoint( x, y, z,  A, B, C, D ):   Given a point and a plane defined by "Ax + By + Cz + D = 0",  show the distance between them and the normal vector from the plane to the point.  See also Plane2(), PlaneLine(), PlanePt3().  No
PlanePt3  9 text   PlanePt3( x1, y1, z1,  x2, y2, z2,  x3, y3, z3 ):   Given 3 points, show the plane they define and its normal vector.  See also Plane2(), PlaneLine(), PlanePoint().  No
Points  5 text   Points( activity, weight, dist, min, sec ):  Aerobic Points for various activities – based on Dr Kenneth Cooper's bestseller, "Aerobics."  General objective is to get a minimum of 4 workouts and 30 points per week of aerobic exercise to gain the training effect.  Approximate calories consumed are also reported.  Arguments as in the table below.  For example: "Points( running, 142, FIVEK, 21, 27 )" yields "20.1 pts -- Running: 142#, 3.10686mi in 21:27 =>   6:54/mi = 8.69 mph  (335 cals)".  See also Fitness(), HeartRate(), Karvonen(), Calories(), Bmi()
activity         ‡ Others weight   dist  min  sec | lbs miles min sec | Aerobicdance, Aerobicshi†, Aerobicslo†, Basketball, lbs miles min sec | Handball, Hockey, Iceskating, Lacrosse, Racketball, lbs miles min sec | Rollerblading, Rollerskating, Rowing, Skiingcc†, lbs yards min sec | Skiingdh†, Skiingwater, Soccer, Squash, Tennisd†, lbs yards min sec | Tenniss†, Volleyball lbs meters min sec | lbs meters min sec | † Swimming__; my=(male,yards), fy=(female,yards); lbs rpm min sec | mm=(male,meters), fm=(female,meters); lbs # holes min sec | † Aerobics__;  lo=low-impact,  hi=high-impact lbs # holes min sec | † Skiing__;  cc=cross-country,  dh=downhill lbs 0 min sec | † Tennis_;  d=doubles,  s=singles

No
Polar  2 Pair   Polar( x, y ):  The polar coordinates (distance from origin and angle (radians)) of the point defined by the cartesian coordinates (x, y No
PopCount  1 1   PopCount( int ):  Return the number of 1 bits in int, the 32-bit integer argument.  Same as BitCount()  Yes
PresentValue  4 1   PresentValue( futureValue, years, rate, nPerYear ):  The present quantity which will accumulate to the Future Value futureValue in years years at an annual interest rate of rate percent compounded nPerYear times per year.  If nPerYear is zero, simple interest is used.  See also FutureValue().  Yes
Product  1 1   Product( int ):  The product of the integers (1,2,...,int).  Same as Factorial() except:  Product(0) = 0,  Factorial(0) = 0! = 1  Yes
PricePer  2-12 table   PricePer( p1,n1,  p2,n2, ...  ):  Display the price per unit ratios  p1/n1p2/n2,  ...  (up to 6 pairs) for comparison purposes.  n1, n2, ... ≠ 0.  Similar to Ratios().  No
Pythagorean  2 1   Pythagorean( a, b ):  Length of the Hypotenuse of a right triangle with sides a and b:
Pythagorean(x,y)  =  +√x² + y²
Yes
Quadratic  3 2 (r, i)s   Quadratic( a, b, c ):  The roots to the 2nd order equation:
ax² + bx + c  =  0,   where  (a ≠ 0)
No
Quadrature  3 text   Quadrature( a, b, expr ):  a b{expr(x)} dx.  Approximate result of integrating the expression (expr) from a to bA and b are the lower and upper bounds of the (dummy) variable in expr, and must be constants with (ab).  The expression expr must have exactly one variable, must be single-valued, and may be a single user-defined function or an expression with no user-defined functions.  The expression expr must be continuous over the specified range, and may include any single-valued function except Rand() and IRand().  Unpredictable results may occur when expr is not continuous or is otherwise ill-behaved.  Same as Integrate(), except Quadrature() always shows convergence of the approximate solution.  Quadrature() is strongly recommended.   No
Quartic  5 4 (r, i)s   Quartic( a, b, c, d, e ):  The roots to the 4th order equation:
ax4 + bx3 + cx2+ dx + e  =  0,   where  (a ≠ 0)
No
RacePace  4 text   RacePace( distance, hours, minutes, seconds ):  Pace (mm:ss/mi) for race of distance distance miles run in hours hours, minutes minutes, and seconds seconds.  Note that distance may be a constant or an expression, e.g., MARATHON, TENK, FIVEK, 100/1760, 0.8*KM, METRICMILE, HALFMARATHON, etc  No
RaceTime  3 text   RaceTime( distance, minutes, seconds ):  Time (hh:mm:ss) to run a race of distance distance miles run at a pace of minutes minutes and seconds seconds per mile.  Note that distance may be a constant or an expression, e.g., MARATHON, TENK, FIVEK, METRICMILE, etc  No
Radians  1 1   Radians( degrees ):  Convert degrees (degrees) to radians:
Radians(d)  =  πd/180  = d × D2RADIANS  ≈  d × 0.01745329
Yes
Function Args Results Prototype/Description Expr Use?
Rand  2 1   Rand( x, y ):  Return a random floating point value between x and y.  Note – not reproducible  Yes
Rankine  1 1   Rankine( fahrDegrees ):  Convert Fahrenheit temperature (fahrDegrees) to Rankine.  See also Kelvin().
Rankine(F)  =  F+459.67
Yes
Ratios  2-12 table   Ratios( v1,n1,  v2,n2, ...  ):  Display the ratios  v1/n1v2/n2,  ...  (up to 6 pairs) for comparison purposes.  n1, n2, ... ≠ 0.  Similar to PricePer().  No
Refinance  7 table   Refinance( currBalance, currPayment, currRate, newRate, loanCharge, loanLoan, newDuration ):  Impact (total cost, breakeven, % interest, et cetera) of refinancing a loan:
currBalance – Current loan balance (principal)
currPayment – Current loan payment (principal and interest components only)
currRate – Current loan annual interest rate (percent - e.g., 7.125)
newRate – New loan annual interest rate (percent - e.g., 5.75)
loanCharge – Addition to principal (loan charge - e.g., closing costs, points)
loanLoan – Addition to principal ("equity" payout - may be 0)
newDuration – New loan duration (years)
Notes: (1) Do not include escrow payments (typically taxes and insurance) with currPayment,  (2) See also Mortgage() and the Payoff*() functions
No
RegPolygon  2 table   RegPolygon( nSides, length ):  Information about the nSides–sided regular polygon with side length.  A regular polygon has all equal angles – which implies all equal sides (Note: all equal sides does not imply equal angles).  (2 < nSides < 13),  (length > 0).  Name, angle, area, and the radii of the inscribed and circumscribed circles are given.  See also RegPolygon2()  No
RegPolygon2  2 table   RegPolygon2( nSides, radius ):  Information about the nSides–sided regular polygon with radius radius.  (2 < nSides < 13),  (radius > 0).  Name, angle, area, and the radii of the inscribed and circumscribed circles are given.  See also RegPolygon()  No
Resistance  2-10 text   Resistance( r1, r2, ... ):  Resistance for 2-10 resistors (r1, r2, ...) in serial, parallel.  All args > 0.  No
Rgb  2 table   Rgb( value, flag ):  Display the Red, Green and Blue components of value in a table.  When flag is not zero, display an iPhone/iPod-iTouch/iPad SDK Objective-C format representation.  Value is an integer representation of the color (e.g., 0x66FF33), and is silently kept in the range (0 - 0xFFFFFF).  See also RgbCompare().  No
RgbCompare  1,2,.. table   RgbCompare( value1, value2, ... ):  Display the color and the Red, Green and Blue components of the values (max=16) in a table.  Value is an integer representation of the color (e.g., 0xB391A8), and is silently kept in the range (0 - 0xFFFFFF).  The values are sorted and duplicate values are silently ignored.  See also Rgb().  Same as Colors().  No
Roman  1 text   Roman( x ):  Display the integer argument (0 < x < 4 million) as a Roman Numeral  No
Round  1 1   Round( x ):  The integer nearest to x.  Values halfway between two integers select the nearest even integer.  Same as RoundEven().   See also RoundOdd().  Yes
RoundDown  1 1   RoundDown( x ):  The greatest integer ≤ x.  Same as Floor().  Not to be confused with Trunc()  Yes
RoundEven  1 1   RoundEven( x ):  The integer nearest to x.  Values halfway between two integers select the nearest even integer.  Same as Round().  See also RoundOdd()  Yes
RoundOdd  1 1   RoundOdd( x ):  The integer nearest to x.  Values halfway between two integers select the nearest odd integer.  See also Round(), RoundEven()  Yes
RoundUp  1 1   RoundUp( x ):  The smallest integer ≥ x.  Same as Ceiling().  Not to be confused with Trunc()  Yes
Sigma  1 1   Sigma( int ):  The sum of the integers (1,2,...,int).  Same as Summation()  Yes
Sign  1 1   Sign( x ):  Return { –1, 0, 1 } for x  =  { <0, 0, >0 }  Yes
SignZN  1 1   SignZN( x ):  Return { –1, 1 } for x  =  { ≤0, >0 }  Yes
SignZP  1 1   SignZP( x ):  Return { –1, 1 } for x  =  { <0, ≥0 }  Yes
Sin  1 1   Sin( radians ):  Sine of the angle radians (radians).  Same as Sinr()  Yes
Sind  1 1   Sind( degrees ):  Sine of the angle degrees (degrees).  Yes
Function Args Results Prototype/Description Expr Use?
Sinh  1 1   Sinh( radians ):  Hyperbolic sine of the angle radians (radians)
Sinh(x)  =  ½(ex – e–x
Yes
Sinr  1 1   Sinr( radians ):  Sine of the angle radians (radians).  Same as Sin()  Yes
SpeedOfSound  1 1   SpeedOfSound( temp ):  Approximate speed of sound (m/s) in calm, dry air at a temperature of temp °C.
SpeedOfSound(t)  ≈  331.36√1+t/273.15
Yes
Solver  many mult   Solver( nEqns, x1, x2, ... ):  Solve nEqns equations in nEqns unknowns (1 ≤  nEqns ≤ 8).  There are (nEqns*(nEqns+1)) more arguments, representing the equations.  Solver() is the same as Unknowns().  For example:
x + 2y + 3z  =   4
2x +  y + 4z  =   5
3x + 3y + 6z  =  12

For these equations, using
Solver(3, 1,2,3,4, 2,1,4,5, 3,3,6,12)

yields:   x = 7,   y = 3,   z = –3
No
Sqrt  1 1   Sqrt( x ):  The positive square root of x  (x ≥ 0)
Sqrt(v) = +√
Yes
SqrtAbs  1 1   SqrtAbs( x ):  The positive square root of the absolute value of x.
SqrtAbs(v) = +√ |v|
Yes
Stats  3,4,.. mult   Stats( x1, x2, x3, ... ):  Report statistics about the arguments.  Must have 3 or more arguments.  Show:  Number, Average, Standard Deviation, Median, Sum, Sum of the Squares, Max and MaxLoc, Min and MinLoc  No
Sum  2,3,.. 1   Sum( x1, x2, ... ): Sum of the arguments  Yes
SumCubed  2,3,.. 1   SumCubed( x1, x2, ... ):  Sum of the cubes of the arguments  Yes
SumInv  2,3,.. 1   SumInv( x1, x2, ... ):  Sum of the inverses of the arguments.  All arguments must be non-zero  Yes
SumInvCubed  2,3,.. 1   SumInvCubed( x1, x2, ... ):  Sum of the cubes of the inverses of the arguments.  All arguments must be non-zero  Yes
SumInvSq  2,3,.. 1   SumInvSq( x1, x2, ... ):  Sum of the squares of the inverses of the arguments.  All arguments must be non-zero  Yes
Sumkxk  2 1   Sumkxk( x, n ):  ∑k=1,n{ k*(xk) }   (x ≠ 0, 1)  Yes
Summation  1 1   Summation( int ):  The sum of the integers (1,2,...,int).  Same as Sigma()  Yes
SumNCubed  1 1   SumNCubed( int ):  The sum of the cubes of the integers (1,2,...,int).  Yes
Function Args Results Prototype/Description Expr Use?
SumNSquared  1 1   SumNSquared( int ):  The sum of the squares of the integers (1,2,...,int).  Yes
SumOfPowers  2 1   SumOfPowers( numb, power ):  ∑n=1,numb{ npower }  where numb and power are both integers, (numb > 1), and (0 < power < 11)  Yes
SumSq  2,3,.. 1   SumSq( x1, x2, ...):  Sum of the squares of the arguments  Yes
Tan  1 1   Tan( radians ):  Tangent of the angle radians (radians).  Same as Tanr()  Yes
Tand  1 1   Tand( degrees ):  Tangent of the angle degrees (degrees).  Yes
TangentCircle  3 1   TangentCircle( r1, r2, r3 ):  Given the radii of 3 mutually tangent circles (r1, r2, r3), return the radius of a 4th circle which is tangent to all 3 input circles  Yes
Tanh  1 1   Tanh( radians ):  Hyperbolic tangent of the angle radians (radians).
Tanh(x)  =  (ex – e–x)/(ex + e–x
Yes
Tanr  1 1   Tanr( radians ):  Tangent of the angle radians (radians).  Same as Tan()  Yes
Tip  1 table   Tip( bill ):  Array of tip candidates for bill bill  No
Trunc  1 1   Trunc( x ):  The integer component of x.  Same as Int().  Not to be confused with Floor() or Ceiling().
x Trunc(x)Floor(x) Ceiling(x)
π  334
–π  –3–4–3

Yes
Unknowns  many mult   Unknowns( nEqns, x1, x2, ... ):  Solve nEqns equations in nEqns unknowns (1 ≤  nEqns ≤ 8).  There are (nEqns*(nEqns+1)) more arguments, representing the equations.  Unknowns() is the same as Solver().  For example:
w +  x +  y +  z  =  10
w + 2x +  y + 6z  =  32
2w +       y +  z  =   9
3w + 2x + 5y + 4z  =  38

For these equations, using
Unknowns(4, 1,1,1,1,10, 1,2,1,6,32, 2,0,1,1,9, 3,2,5,4,38)

yields:
w = 1    y = 3
x = 2    z = 4

No
VolBrick  3 1   VolBrick( length, width, depth ):  Volume of the rectangular solid with the sides length, width, and depth.
VolBrick(l,w,d)  =  lwd
Yes
VolCone  2 1   VolCone( radius, height ):  Volume of a right cone of radius radius and height height.
VolCone(r,h)  =  πr²h/3
Yes
VolCube  1 1   VolCube( side ):  Volume of a cube of side side.
VolCube(s)  =  s³
Yes
Function Args Results Prototype/Description Expr Use?
VolCylinder  2 1   VolCylinder( radius, height ):  Volume of a right cylinder of radius radius and height height.
VolCylinder(r,h)  =  πr²h
Yes
VolFrustum  3 1   VolFrustum( baseRadius, topRadius, height ):  Volume of the curved surface of the frustum of a right cone with base radius baseRadius, top radius topRadius, and height height
VolFrustum(b,t,h)  =  πh(b²+bt+t²)/3
Yes
VolOblSpheroid  2 1   VolOblSpheroid( majorSemiAxis, minorSemiAxis ):  Given an ellipse with major semiaxis majorSemiAxis and minor semiaxis minorSemiAxis, with (majorSemiAxisminorSemiAxis), an oblate spheroid is formed by the rotation of the ellipse about its minor axis.  The Volume of an oblate spheroid is given by:
VolOblSpheroid(a,b)  =  (4/3)πa²b
Yes
VolProlSpheroid  2 1   VolProlSpheroid( majorSemiAxis, minorSemiAxis ):  Given an ellipse with major semiaxis majorSemiAxis and minor semiaxis minorSemiAxis, with(majorSemiAxisminorSemiAxis), a prolate spheroid is formed by the rotation of the ellipse about its major axis.  The volume of an prolate spheroid is given by:
VolProlSpheroid(a,b)  =  (4/3)πab²
Yes
VolPyramid  2 1   VolPyramid( baseArea, altitude ):  Volume of a regular pyramid of base area baseArea and altitude altitude.
VolPyramid(b,a)  =  ba/3
Yes
VolSphere  1 1   VolSphere( r ):  The volume of a sphere of radius r
VolSphere(r)  =  (4/3)πr³
Yes
VolSphSegment  2 1   VolSphSegment( sphereRadius, height ):  Volume of a spherical segment of radius sphereRadius and height heightSphereRadius is the radius of the sphere, not the segment.  See also VolSphSegment2().
VolSphSegment(r,h)  =  πh²(3r–h)/3
Yes
VolSphSegment2  2 1   VolSphSegment2( segmentRadius, height ):  Volume of a spherical segment of radius segmentRadius and height heightSegmentRadius is the radius of the segment, not the sphere.  See also VolSphSegment().
VolSphSegment2(b,h)  =  πh(h²+3b²)/6
Yes
WindChill  2 text   WindChill( temp, windSpeed ):  Display the windchill factor (°F) for a given temperature temp (°F) and wind speed windSpeed (mph).  (temp < 50°F,  windSpeed > 3 mph).  The Windchill factor is the apparent temperature on exposed skin due to the wind.  No
WindChillMetric  2 text   WindChillMetric( temp, windSpeed ):  Display the windchill factor (°C) for a given temperature temp (°C) and wind speed windSpeed (km/h).  (temp < 10°C,  windSpeed > 5 km/h).  The Windchill factor is the apparent temperature on exposed skin due to the wind.  No
Ymxb  4 text   Ymxb( x1, y1,  x2, y2 ):  Given two data points on the X-Y plane, (x1, y1) and (x2, y2), compute the slope (m), the y-intercept (b), the distance between the two points, the midpoint, and show the equation of the line containing the points.  Same as Line().  See also Line3D().  No
Function Args Results Prototype/Description Expr Use?

### ComputeSoup – Overview

This web site allows users to evaluate expressions (including those which have variables – each with one or more values), and display the results in an easy-to-read table.  Many standard mathematical constants and functions are available for use in the expressions, as well as a collection of special purpose functions for a variety of computational chores (for example, calculating race pace, refinance and mortgage payoff strategies, performing integrations, calculating the number of calories burned by various workouts).  The button (above left) allows you to get more details about these and other capabilities, and the other buttons above (e.g., , , , ) lead to information which may be useful in building computations.  The button presents more detail about how to use this site effectively, the button brings up this page, and the button provides a mechanism for sending comments, questions and/or requests to us.

There are several advanced features, including storing results for later use, building user-defined functions, input shortcuts, and integration.  Click for details.

The major capability is to evaluate expressions and equations (including those that have variables) and print the results out in a table for easy review.  Below are five samples:
 1) A simple equation with a constant, two functions, and two variables 2) Calculate race times and race paces 3) Calculate calories consumed during a bike ride and other actvities 4) Investigate mortgage payoff strategies (various extra payments each month) 5) Calculate the implications of refinancing a mortgage

### Sample 1)     tr = (pi-2.375)*(sqrt(x)*cos(omega-x))

Calculate values for tr for three values of x and three values of omega.  This is a two-step operation: first enter the equation into the [Expr] box (as in the sample below) and click .

Expr

and second, enter value(s) for the variables (as in the sample below) and click .

x 5 7 10 5.18, 9.1, 17.104

This will yield the results shown below:

### tr = (PI-2.375)*(Sqrt(x)*Cos(omega-x));

tr x omega   ------ Max 1) 5 5.18 2) 5 9.1 3) 5 17.104 4) 7 5.18 5) 7 9.1 Min 6) 7 17.104 Mdn 7) 10 5.18 8) 10 9.1 9) 10 17.104

This sample illustrates the use of variables (x and omega), uses an equation (an equation is a result variable (tr), followed by "=" and an expression).  The nine result values of tr are automatically saved in the Store.  If you use tr in a subsequent computation during this session, those nine values will automatically be loaded (although you can edit or override them).  One constant (PI) and two functions – Sqrt() and Cos() – are also used.  The maximum, minimum and median value of the results are flagged.  Further, note that whitespace is ignored in the [Expr] box, but that whitespace is important for entering variable values.  Values are separated by any combination of one or more blanks and commas.

### Sample 2)     Using Race Functions

How long will it take to run a marathon at a steady pace of 7:15 per mile?

The Racetime() function has three arguments (distance, minutes, and seconds).  It shows the time to cover the distance at the input pace.  Enter the information into the [Expr] box and click .

Expr

which yields

#### The Marathon:  26.21875 mi at 7:15/mi (8.28 mph) =>  3:10:05

In this sample, marathon is a constant.  The Racepace() function performs the reverse operation – it takes 4 arguments (distance, hours, minutes, seconds) and reports overall pace for a given distance and time.  In this sample, the variable xmin is used to check out the paces for various overall times.

Expr

Enter value(s) for xmin and click .
xmin 0 10 20 30 40 50

which yields

 Dist (mi) Time Pace The Marathon: 26.21875 3:00:00 6:52/mi (8.74 mph) The Marathon: 26.21875 3:10:00 7:15/mi (8.28 mph) The Marathon: 26.21875 3:20:00 7:38/mi (7.87 mph) The Marathon: 26.21875 3:30:00 8:01/mi (7.49 mph) The Marathon: 26.21875 3:40:00 8:23/mi (7.15 mph) The Marathon: 26.21875 3:50:00 8:46/mi (6.84 mph)

### Sample 3)    Calories burned

How many calories do you burn in a 50 minute, 13½ mile bike ride if you weigh 165 pounds?

You can use the Calories() function.  Enter calories() in the [Expr] box and click to see the arguments.  This yields the following table, which shows that the Calories() function can be used with 40 different activities (for this sample, we choose cycling):

Function Args Results Prototype/Description Expr Use?
Calories  5 text   Calories( activity, weight, dist, min, sec ):  Approximate calories consumed by various activities.  Arguments as in the table below.  For example: "Calories( running, 165, 3.25, 25, 20 )" yields "408 calories -- Running (165 lbs, 3.25mi in 25:20 =>  7:48/mi = 7.70 mph)".  See also Fitness(), HeartRate(), Karvonen(), Points(), Bmi()
activity   weight     dist    min    sec ‡ Others | lbs miles min sec | Aerobicdance, Aerobicshi†, Aerobicslo†, Basketball, lbs miles min sec | Handball, Hockey, Iceskating, Judo, Karate, Lacrosse, lbs miles min sec | Pingpong, Racketball, Rollerblading, Rollerskating, lbs yards min sec | Rowing, Skiingcc†, Skiingdh†, Skiingwater, lbs yards min sec | Snowshoeing, Snowshoveling, Soccer, Squash, lbs meters min sec | Taichi, Tennisd†, Tenniss†, Volleyball, lbs meters min sec | Wateraerobics lbs rpm min sec | † Swimming__; my=(male,yards), fy=(female,yards); lbs # holes min sec | mm=(male,meters), fm=(female,meters); lbs # holes min sec | † Aerobics__;  lo=low-impact,  hi=high-impact lbs 0 min sec | † Skiing__;  cc=cross-country,  dh=downhill lbs # steps 0 0 | † Tennis_;  d=doubles,  s=singles

No

Enter the argument values into the [Expr] box (as below) and click .

Expr

which yields

#### 517 calories -- Cycling (165 lbs,  13.5mi in 50:00  =>  3:42/mi = 16.20 mph)

In this sample, cycling is a constant.  Check the Prototype/Description table above for other activities which are supported by Calories(), for example, running, swimming, tennis, walking, aerobics, ....

Here are two more Calories() samples (running and walking).

Expr

which yields

Expr

which yields

### Sample 4)     Paying off a loan early

Consider a mortgage at 6.55%, with payment of \$1,331.76 per month, and an outstanding balance of \$204,236.70 – what will be the impact of paying an extra \$200 each month (assuming no prepayment penalties)?  What about other amounts?

You can use the Payoff2() function.  Enter payoff2() in the [Expr] box and click to see the arguments.  This yields

Function Args Results Prototype/Description Expr Use?
Payoff2  4 table   Payoff2( payment, rate, balance, extra ):  Show impact of extra amount submitted with each future mortgage payment when the loan is partly paid off:
payment  =  Monthly payment (principal + interest only: no escrow)
rate  =  Annual interest rate (percent - e.g., 5.85)
balance  =  Current balance (principal)
extra  =  Extra amount with each payment
Same as PayoffExtra2().  See also Refinance(), Mortgage(), and the other Payoff*() functions.
No

Enter the information into the [Expr] box (as below) and click .

Expr

which yields

### An extra \$200/month saves \$77,785 (17.5%),  pays off loan 94 months early

 Standard   \$200 extra --------------- -------------- \$204,237 \$204,237 \$1,331.76 \$1,531.76 \$447.13 \$47.65 334 240 \$239,687 \$161,902 54.0% 44.2% --------------- -------------- \$443,923 \$366,138 --------------- -------------- — \$77,785

#### This computation is based only on principal andinterest, and assumes no prepayment penalty.Escrow (taxes + insurance) is not part of the computation.

This shows a set of results for paying an extra \$200.00 with each monthy payment.  The impacts are an overall savings of \$77,785 (17.5%) and a reduction of almost eight years of payments.

To investigate the impact of other extra amounts per month, use various values for the extra variable.  Enter:

Expr

Note the variable add – picking a set of values for add allows us to do a simple parameter study.  That is, we can easily see the results of various extra payment amounts.  Now click , then enter the additional amount(s) to pay for each month (values for add) and click to see the impact

Enter value(s) for add
add 50, 100, 168.24, 200, 250, 300, 400, 500

which yields

### Balance = \$204,237 at 6.55% with monthly payments of \$1,331.76 Total responsibility = 334 payments (333 * \$1,331.76 + \$447.13) = \$443,923  (\$239,687 = 54.0% is interest)

MonthlyMonthly/-------------- Saves ------------\FinalTotalTotal
ExtraPayment\$%Months PaymentInterestPayments
-----------  -------------  -----------------------------------------  ------------  ------------------------   --------------
0  \$1,331.76  —         \$447.13  \$239,687  54.0%  \$443,923
\$50  \$1,381.76  \$26,619  6.0%   31  \$12.80  \$213,068  51.1%  \$417,304
\$100  \$1,431.76  \$47,323  10.7%   56  \$3.15  \$192,364  48.5%  \$396,601
\$168.24  \$1,500  \$69,318  15.6%   84  \$1,105.15  \$170,368  45.5%  \$374,605
\$200  \$1,531.76  \$77,785  17.5%   94  \$47.65  \$161,902  44.2%  \$366,138
\$250  \$1,581.76  \$89,408  20.1%  109  \$201.20  \$150,279  42.4%  \$354,515
\$300  \$1,631.76  \$99,364  22.4%  122  \$257.47  \$140,322  40.7%  \$344,559
\$400  \$1,731.76  \$115,583  26.0%  144  \$1,037.17  \$124,103  37.8%  \$328,340
\$500  \$1,831.76  \$128,280  28.9%  161  \$580.17  \$111,406  35.3%  \$315,643

#### This computation is based only on principal andinterest, and assumes no prepayment penalty.Escrow (taxes + insurance) is not part of the computation.

Note that the Payoff() function is similar to Payoff2(), except that Payoff() works with a loan starting at the beginning instead of during the payoff lifetime.  To see other financial functions, go to the top of this page and click   ,   or click   .  The financial function Refinance() is described below.

### Sample 5)     Refinancing a loan

Consider a mortgage at 7.375%, with payment of \$1,885.66 per month and outstanding balance of \$210,420 – what will be the implications of refinancing at 5.125% with a \$2,750 refinance charge and taking out an additional \$5,000 equity loan?

You can use the Refinance() function.  Enter refinance() in the [Expr] box and click to see the arguments.  This yields

Function Args Results Prototype/Description Expr Use?
Refinance  7 table   Refinance( currBalance, currPayment, currRate, newRate, loanCharge, loanLoan, newDuration ):  Impact (total cost, breakeven, % interest, et cetera) of refinancing a loan:
currBalance – Current loan balance (principal)
currPayment – Current loan payment (principal and interest components only)
currRate – Current loan annual interest rate (percent - e.g., 7.125)
newRate – New loan annual interest rate (percent - e.g., 5.75)
loanCharge – Addition to principal (loan charge - e.g., closing costs, points)
loanLoan – Addition to principal ("equity" payout - may be 0)
newDuration – New loan duration (years)
Notes: (1) Do not include escrow payments (typically taxes and insurance) with currPayment,  (2) See also Mortgage() and the Payoff*() functions
No

The Refinance() function has 7 arguments.  Enter the information into the [Expr] box (as below) and click .

Expr

which yields

### Balance = \$210,420.00 at 7.375% with monthly payments of \$1,885.66 Current responsibility = 189 payments (188 * \$1,885.66 + \$1,809.77) = \$356,313.85  (\$145,893.85 = 40.9% is interest)

 CurrentMortgage   New Mortgage(w/out Equity)   New Mortgage(w/ Equity)   New Mortgage  (Old Payment) ------------ --------------- --------------- ---------------- 7.375% 5.125% 5.125% 5.125% 0.00 \$5,000.00 \$5,000.00 \$210,420.00 \$213,170.00 \$218,170.00 \$218,170.00 \$1,885.66 \$1,699.65 \$1,739.51 \$1,885.66 \$1,809.77 \$1,699.65 \$1,739.51 \$1,710.84 189 180 180 160 15 37 22 \$145,893.85 \$92,767.00 \$94,941.80 \$83,360.78 40.9 30.3 30.8 28.1 ------------ --------------- --------------- ---------------- \$356,313.85 \$305,937.00 \$308,111.80 \$296,530.78 ------------ --------------- --------------- ---------------- — \$50,376.85 \$48,202.05 \$59,783.06

#### This computation is based only on principal and interest, and assumes no prepayment penalty. Escrow (taxes + insurance) is not part of the computation.

• "Breakeven" is defined as the time (months) from the new mortgage til the current and new balances are the same.  This computation is more representative than the simpler (delta dollars)/(delta payment) method, and when the new interest rate is lower than the old rate, will result in a quicker breakeven.

• Note that the \$5,000.00 equity "loan" with the refinance will end up costing \$7,174.80 (that is, \$2,174.80 in interest)

• The rightmost column represents the "what-if" computation of getting the new loan (5.125%), but continuing to pay it off with the old payment (\$1,885.66)

Click Advanced Features to review some of the more advanced ways to use ComputeSoup (also available via ).