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:  89 Special Functions
(must be only term in expression)

Numbers, constants, variables, and most of the functions may be used anywhere in an expression, but some functions must be the only term in the expression.  These functions are special because they do not return a single value, but rather they return a table of data or textual information, and thus cannot participate in building a more complex expression.

ComputeSoup – 89 Special Functions

 AltBase   ComplexRoots   Fitness   Normalize   PayoffView   Refinance 
 Base   ComplexSqrt   HeartRate   Normalize2   PayoffView2   RegPolygon 
 BillSplit   CrossProd   HeatIndex   Normalize3   Plane2   RegPolygon2 
 Binary   Cubic   HeatIndexMetric   Octal   PlaneLine   Resistance 
 Calories   DayOfWeek   Hex   OhmsLaw   PlanePoint   Rgb 
 Capacitance   DayOfYear   Holiday   Payoff   PlanePt3   RgbCompare 
 Cartesian   DayOfYear2   Integrate   Payoff2   Points   Roman 
 Colors   DaysAway   IraProfile   PayoffBiweekly   Polar   Solver 
 ComplexAdd   DaysBetw   Karvonen   PayoffBiweekly2   PricePer   Stats 
 ComplexDiv   DaysSince   Line   PayoffExtra   Quadratic   Tip 
 ComplexExp   DaysTil   Line3D   PayoffExtra2   Quadrature   Unknowns 
 ComplexLn   DotProd   MatrixInv   PayoffLump   Quartic   WindChill 
 ComplexMult   EasterDate   MidPt   PayoffProfile   RacePace   WindChillMetric 
 ComplexPower   EffectiveRate   MidPt3D   PayoffProfile2   RaceTime   Ymxb 
 ComplexPower2   Factor   NominalRate   PayoffSurvey   Ratios     

ComputeSoup  –  89 Special Functions

Prototypes (full descriptions below)

Expr Use?     Prototype   [ →  ResultType ] Expr Use?     Prototype   [ →  ResultType ]
No  AltBase( int, newBase ) No  Normalize( x1, x2, ... )  → mult
No  Base( int ) No  Normalize2( x1, x2, ... )  → mult
No  BillSplit( bill, nShares, tipPercent )  → text No  Normalize3( x1, x2, ... )  → mult
No  Binary( int ) No  Octal( int )
No  Calories( activity, weight, dist, min, sec )  → text No  OhmsLaw( power, voltage, current, resistance )  → text
No  Capacitance( c1, c2, ... )  → text No  Payoff( principal, rate, years, extra )  → table
No  Cartesian( dist, angle )  → Pair No  Payoff2( payment, rate, balance, extra )  → table
No  Colors( value1, value2, ... )  → table No  PayoffBiweekly( principal, rate, years, extra )  → table
No  ComplexAdd( real1, imag1,  real2, imag2 )  → (r, i) No  PayoffBiweekly2( payment, rate, balance, extra )  → table
No  ComplexDiv( real1, imag1,  real2, imag2 )  → (r, i) No  PayoffExtra( principal, rate, years, extra )  → table
No  ComplexExp( real, imag )  → (r, i) No  PayoffExtra2( payment, rate, balance, extra )  → table
No  ComplexLn( real, imag )  → (r, i) No  PayoffLump( payment, rate, balance, lumpSum )  → table
No  ComplexMult( real1, imag1, real2, imag2 )  → (r, i) No  PayoffProfile( principal, rate, years, extra, nYears )  → text
No  ComplexPower( real, imag, x )  → (r, i) No  PayoffProfile2( payment, rate, balance, extra, nYears )  → text
No  ComplexPower2( real1, imag1,  real2, imag2 )  → (r, i) No  PayoffSurvey( payment, rate, balance )  → table
No  ComplexRoots( nRoots, real, imag )  → (r,i)s No  PayoffView( principal, rate, years  )  → text
No  ComplexSqrt( real, imag )  → (r, i) No  PayoffView2( payment, rate, balance )  → text
No  CrossProd( x1, y1, z1,   x2, y2, z2 )  → text No  Plane2( A1, B1, C1, D1,  A2, B2, C2, D2 )  → text
No  Cubic( a, b, c, d )  → 3 (r, i)s No  PlaneLine( x1, y1, z1,   x2, y2, z2,   A, B, C, D )  → text
No  DayOfWeek( year, month, day )  → text No  PlanePoint( x, y, z,   A, B, C, D )  → text
No  DayOfYear( year, month, day )  → text No  PlanePt3( x1, y1, z1,  x2, y2, z2,   x3, y3, z3 )  → text
No  DayOfYear2( year, dayNumb )  → text No  Points( activity, weight, dist, min, sec )  → text
Expr Use?     Prototype   [ →  ResultType ] Expr Use?     Prototype   [ →  ResultType ]
No  DaysAway( nDays, year, month, day )  → text No  Polar( x, y )  → Pair
No  DaysBetw( year1, month1, day1,   year2, month2, day2 )  → text No  PricePer( p1,n1,  p2,n2, ...  )  → table
No  DaysSince( holiday )  → text No  Quadratic( a, b, c )  → 2 (r, i)s
No  DaysTil( holiday )  → text No  Quadrature( a, b, expr )  → text
No  DotProd( x1, y1, z1,   x2, y2, z2 )  → text No  Quartic( a, b, c, d, e )  → 4 (r, i)s
No  EasterDate( year )  → text No  RacePace( distance, hours, minutes, seconds )  → text
No  EffectiveRate( nominalRate, nPerYear )  → text No  RaceTime( distance, minutes, seconds )  → text
No  Factor( int )  → mult No  Ratios( v1,n1,  v2,n2, ...  )  → table
No  Fitness( code, gender, age, val1, val2 )  → text No  Refinance( currBalance, currPayment, currRate, newRate, loanCharge, loanLoan, newDuration )  → table
No  HeartRate( age, restingPulse )  → text No  RegPolygon( nSides, length )  → table
No  HeatIndex( temp, humidity )  → text No  RegPolygon2( nSides, radius )  → table
No  HeatIndexMetric( temp, humidity )  → text No  Resistance( r1, r2, ... )  → text
No  Hex( int ) No  Rgb( value, flag )  → table
No  Holiday( month )  → table No  RgbCompare( value1, value2, ... )  → table
No  Integrate( a, b, expr )  → text No  Roman( x )  → text
No  IraProfile( currValue, addition, rate, years )  → table No  Solver( nEqns, x1, x2, ... )  → mult
No  Karvonen( age, restingPulse )  → text No  Stats( x1, x2, x3, ... )  → mult
No  Line( x1, y1,  x2, y2 )  → text No  Tip( bill )  → table
No  Line3D( x1, y1, z1,  x2, y2, z2 )  → text No  Unknowns( nEqns, x1, x2, ... )  → mult
No  MatrixInv( N,  x11, x12, ...,  xNN )  → table No  WindChill( temp, windSpeed )  → text
No  MidPt( x1, y1,  x2, y2 )  → text No  WindChillMetric( temp, windSpeed )  → text
No  MidPt3D( x1, y1, z1,  x2, y2, z2  )  → text No  Ymxb( x1, y1,  x2, y2 )  → text
No  NominalRate( effectiveRate, nPerYear )  → text   
Expr Use?     Prototype   [ →  ResultType ] Expr Use?     Prototype   [ →  ResultType ]


ComputeSoup  –  89 Special Functions

Function Args Results Prototype/Description Expr Use?
 AltBase  2 1   AltBase( int, newBase ):  Display int in base newBase.  Both arguments are integers, and (2 ≤ newBase ≤ 36)  No
 Base  1 3   Base( int ):  Display the integer argument int in octal, hex and binary  No
 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
 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
Walkinglbs miles min sec | AerobicDance, AerobicsHi, AerobicsLo, Basketball,
Runninglbs miles min sec | Handball, Hockey, Iceskating, Judo, Karate, Lacrosse,
Cyclinglbs miles min sec | PingPong, Racketball, Rollerblading, Rollerskating,
SwimmingMYlbs yards min sec | Rowing, SkiingCC, SkiingDH, SkiingWater,
SwimmingFYlbs yards min sec | Snowshoeing, Snowshoveling, Soccer, Squash,
SwimmingMMlbs meters min sec | Taichi, TennisD, TennisS, Volleyball,
SwimmingFMlbs meters min sec | WaterAerobics
Skipropelbs 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
 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
 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
Function Args Results Prototype/Description Expr Use?
 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
 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
 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
 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 DayofYear(), DayOfWeek().  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 positive 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
Function Args Results Prototype/Description Expr Use?
 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
 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 (Easter falls between March 22 and April 25)  No
 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
 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
 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 run1(0,1)yrsminsec|12 min cycling4(0,1)yrsmi0
3.0 mi walk2(0,1)yrsminsec|12 min swimming5(0,1)yrsyds0
12 min run3(0,1)yrsmi0|12 min swimming6(0,1)yrsm0
 
No
 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
Function Args Results Prototype/Description Expr Use?
 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
 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) ithe 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
 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
 MatrixInv  5,10,17 table   MatrixInv( N,  x11, x12, ...,  xNN ) ):  Inverse of the N × N matrix.  ( 2 ≤ N ≤ 4 ).  See also MatrixDet()  No
 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(), MidPt3D().  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
 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
Function Args Results Prototype/Description Expr Use?
 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.25)
    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., 7.125)
    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
 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.  When the 4th argument (extra) is non-zero, show the impact of adding this amount to each biweekly payment.
    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.  When the 4th argument (extra) is non-zero, show the impact of adding this amount to each biweekly payment.
    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.25)
    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., 7.125)
    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.625)
    balance = Current balance (principal)
    lumpSum = Lump sum payment (must be > 0)
See also Refinance(), Mortgage(), and the other Payoff*() functions. 
No
 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., 6.5)
    balance = Current balance (principal)
See also Refinance(), Mortgage(), and the other Payoff*() functions. 
No
Function Args Results Prototype/Description Expr Use?
 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., 5.75)
    balance = Current balance (principal)
See also Refinance(), Mortgage(), and the other Payoff*() functions. 
No
 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 lbs, 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 miles min sec | AerobicDance, AerobicsHi, AerobicsLo, Basketball,
Runninglbs miles min sec | Handball, Hockey, Iceskating, Lacrosse, Racketball,
Cyclinglbs miles min sec | Rollerblading, Rollerskating, Rowing, SkiingCC,
SwimmingMYlbs yards min sec | SkiingDH, SkiingWater, Soccer, Squash, TennisD,
SwimmingFYlbs yards min sec | TennisS, Volleyball
SwimmingMMlbs meters min sec | 
SwimmingFMlbs meters min sec | Swimming__; MY=(male,yards), FY=(female,yards);
SkipRopelbs rpm min sec |       MM=(male,meters), FM=(female,meters);
GolfCarrylbs # holes min sec | Aerobics__;  Lo=low-impact,  Hi=high-impact
GolfWalklbs # holes min sec | Skiing__;  CC=cross-country,  DH=downhill
Others 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
 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
 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
Function Args Results Prototype/Description Expr Use?
 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
 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.375)
    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
 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
 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
Function Args Results Prototype/Description Expr Use?
 Tip  1 table   Tip( bill ):  Array of tip candidates for bill bill.  See also BillSplit().  No
 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
 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 ).
---//---