Q  (v9.3 – Nov 19, 2016)

© 2005-2016 Mark Furtney.  All rights reserved.

ComputeSoup – Web Computational Engine

(Equation/Expression Evaluation)


 
                       
 

              Enter expression in this box
Expr  


  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
Walking lbs miles min sec | Aerobicdance, Aerobicshi, Aerobicslo, Basketball,
Running lbs miles min sec | Handball, Hockey, Iceskating, Judo, Karate, Lacrosse,
Cycling lbs miles min sec | Pingpong, Racketball, Rollerblading, Rollerskating,
Swimmingmylbs yards min sec | Rowing, Skiingcc, Skiingdh, Skiingwater,
Swimmingfy lbs yards min sec | Snowshoeing, Snowshoveling, Soccer, Squash,
Swimmingmm lbs meters min sec | Taichi, Tennisd, Tenniss, Volleyball,
Swimmingfmlbs meters min sec | Wateraerobics
Skiprope lbs rpm min sec | Swimming__; my=(male,yards), fy=(female,yards);
Golfcarry lbs # holes min sec |       mm=(male,meters), fm=(female,meters);
Golfwalk lbs # holes min sec | Aerobics__;  lo=low-impact,  hi=high-impact
Others lbs 0 min sec | Skiing__;  cc=cross-country,  dh=downhill
Stepcount 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   val2 
1.5 mi run 1 (0,1) yrs min sec | 12 min cycling 4 (0,1) yrs mi 0
3.0 mi walk 2 (0,1) yrs min sec | 12 min swimming 5 (0,1) yrs yds 0
12 min run 3 (0,1) yrs mi 0 | 12 min swimming 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   weight    dist    min    sec    |   Others
Walkinglbs milesmin sec| Aerobicdance, Aerobicshi, Aerobicslo, Basketball,
Runninglbs milesmin sec| Handball, Hockey, Iceskating, Lacrosse, Racketball,
Cyclinglbs milesmin sec| Rollerblading, Rollerskating, Rowing, Skiingcc,
Swimmingmy lbsyards minsec |Skiingdh, Skiingwater, Soccer, Squash, Tennisd,
Swimmingfy lbsyards minsec |Tenniss, Volleyball
Swimmingmm lbsmeters minsec |
Swimmingfm lbsmeters minsec | Swimming__; my=(male,yards), fy=(female,yards);
Skipropelbs rpmmin sec|       mm=(male,meters), fm=(female,meters);
Golfcarrylbs # holesmin sec| Aerobics__;  lo=low-impact,  hi=high-impact
Golfwalklbs # holesmin sec| Skiing__;  cc=cross-country,  dh=downhill
Others lbs0min 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  
omega  








This will yield the results shown below:

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

tr x omega
     ------     ---     ---------  
Max   1)     1.6864589   5     5.18 
2)    -0.9853364   5     9.1 
3)     1.534163   5     17.104 
4)    -0.500223   7     5.18 
5)    -1.0239357   7     9.1 
Min   6)    -1.5780752   7     17.104 
Mdn   7)     0.2603652   10     5.18 
8)     1.5068937   10     9.1 
9)     1.6523817   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

Racetime(MARATHON, 7, 15);

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  






which yields

Dist (mi) TimePace
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
Walking lbs miles min sec | Aerobicdance, Aerobicshi, Aerobicslo, Basketball,
Running lbs miles min sec | Handball, Hockey, Iceskating, Judo, Karate, Lacrosse,
Cycling lbs miles min sec | Pingpong, Racketball, Rollerblading, Rollerskating,
Swimmingmylbs yards min sec | Rowing, Skiingcc, Skiingdh, Skiingwater,
Swimmingfy lbs yards min sec | Snowshoeing, Snowshoveling, Soccer, Squash,
Swimmingmm lbs meters min sec | Taichi, Tennisd, Tenniss, Volleyball,
Swimmingfmlbs meters min sec | Wateraerobics
Skiprope lbs rpm min sec | Swimming__; my=(male,yards), fy=(female,yards);
Golfcarry lbs # holes min sec |       mm=(male,meters), fm=(female,meters);
Golfwalk lbs # holes min sec | Aerobics__;  lo=low-impact,  hi=high-impact
Others lbs 0 min sec | Skiing__;  cc=cross-country,  dh=downhill
Stepcount 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

Calories( CYCLING, 165, 13.5, 50, 0 );

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

Calories( RUNNING, 175, 3, 22, 40 );

402 calories -- Running (175 lbs, 3mi in 22:40 => 7:33/mi = 7.94 mph)



Expr  

which yields

Calories( WALKING, 140, 3.8, 63, 0 );

254 calories -- Walking (140 lbs, 3.8mi in 1:03:00 => 16:35/mi = 3.62 mph)



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


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)

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

    Standard  $200 extra 
    ---------------  -------------- 
 Balance  $204,237  $204,237 
 Payment  $1,331.76  $1,531.76 
 Last payment  $447.13  $47.65 
 Months   334   240 
 Interest  $239,687  $161,902 
 % Interest  54.0%  44.2% 
    ---------------  -------------- 
 Total  $443,923  $366,138 
    ---------------  -------------- 
 Savings  —     $77,785 

This computation is based only on principal and
interest, 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





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 and
interest, 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

Refinance(210420, 1885.66, 7.375, 5.125, 2750, 5000, 15);


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)

    Current
Mortgage 
 New Mortgage
(w/out Equity) 
 New Mortgage
(w/ Equity) 
 New Mortgage
  (Old Payment) 
    ------------  ---------------  ---------------  ---------------- 
 Interest Rate  7.375%  5.125%  5.125%  5.125% 
 Equity "Loan"     0.00  $5,000.00  $5,000.00 
 Balance  $210,420.00  $213,170.00  $218,170.00  $218,170.00 
 Payment  $1,885.66  $1,699.65  $1,739.51  $1,885.66 
 Last Payment  $1,809.77  $1,699.65  $1,739.51  $1,710.84 
 Months  189  180  180  160 
 Breakeven     15  37  22 
 Interest  $145,893.85  $92,767.00  $94,941.80  $83,360.78 
 % Interest  40.9  30.3  30.8  28.1 
    ------------  ---------------  ---------------  ---------------- 
 Total To Pay  $356,313.85  $305,937.00  $308,111.80  $296,530.78 
    ------------  ---------------  ---------------  ---------------- 
 Savings —        $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.




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