**HP 71B: Product of f(x), Nested Radicals, How Much Can I Afford?, Cardiac Analysis**

**Product of a Function**

∏ f(x)

Edit f(x) at line 10

**PROGRAM PRODFX**

At least 90 bytes, 1/23/2019

10 DEF FNF(X)=[ insert f(X) here ]

20 INPUT "Lower=";L

30 INPUT "Upper=";U

40 P=1

50 FOR X=L TO U @ P=P*FNF(X) @ NEXT X

60 DISP 'P=';P

Example: f(X) = FNF(X) = 1/X

Lower: 1

Upper: 5

Result: 6.61375661376E-6

**Trigonometric Simplification**

Original blog entry (11/15/2018): http://edspi31415.blogspot.com/2018/11/ti-84-and-casio-fx-cg-50-micropython.html

Source: Dugopolski, Mark

__Trigonometry__Addison Wesley: Boston 2003 pp 211-212 ISBN 0-201-70338-6

Simply the expression:

a sin x + b cos x = r * sin( θ + x )

where r = √(a^2 + b^2), θ = angle(a,b) = arg(a+bi)

**PROGRAM SCTOSIN**

114 bytes, 1/23/2019

10 DESTROY A,B,R,T

20 RADIANS

30 DISP "A*SIN(X)+B*COS(X)" @ PAUSE

40 INPUT "A=";A

50 INPUT "B=";B

60 R=SQR(A^2+B^2) @ T=ANGLE(A,B)

70 DISP R;"*SIN(";T;"+X)"

Line 70 can use PRINT

SQR is √

Example:

A = 2.25, B = 1.76

Result:

R = 2.85658887486 (scroll left)

θ = .663806440909

Output:

2.85658887486 *SIN( .663806440909 +X)

**How Much Car Can You Afford?**

Original blog entry (3/13/2018): https://edspi31415.blogspot.com/2018/03/hp-prime-car-payment-and-affordability.html

Calculate how much the buyer can afford, considering sales tax, discounts, and down payment. All amounts are entered as positive.

**PROGRAM AFFORD**

221 bytes, 1/24/2019

10 DESTROY N,I,S,X,W,D,P

20 INPUT "# MONTHS:";N

30 INPUT "RATE %:";I @ I=I/1200

40 INPUT "PAYMENT $";X

50 INPUT "SALES TAX %:";S

60 INPUT "DISCOUNT %:";D

70 INPUT "DOWN PMT $";W

80 P=1/I*(1-(1+I)^(-N))

85 P=P*X

90 P=(P+W)/((1+.01*S)*(1-.01*D))

95 PRINT USING "'AMT: $'7D.DD";P

Example:

Term: N = 60 months

Interest Rate: I = 4.8%

Desired Payment: X = $295

Sales Tax: S = 9.5%

Discount: D = 10%

Down Payment: W=$1500

Result:

AMT: $17657.09

**HP 71B: Cardiac Programs**

Source: Hewlett Packard. "HP-65 Medical Pac 1" 1974.

**Valve Area**

Variables:

Input:

P = pressure gradient data (mmHg), enter an average or data points

C = cardiac output (CO) (l/min)

R = R-R interval (seconds)

T = the time the valve is open (seconds)

The program offers a choice between calculating an area of a regular valve or a mitral valve.

**Program VALVE**

433 bytes, 1/28/2019

10 DESTROY K,P,N,D,P1,C,R,T,F,V

20 P1=0 @ N=0 @ P=0

30 PRINT "PRESSURE (mmHg)" @ WAIT .5

35 INPUT "P: 1=AVG 2=DATA ";K

38 IF K=1 THEN 50 ELSE 40

40 INPUT "P DATA: ";D

42 P=P+D @ N=N+1 @ P1=P/N

44 INPUT "DONE? 1=YES 2=NO ";K

46 IF K=2 THEN 40 ELSE 60

50 INPUT "P AVG. :";P1

60 INPUT "CO (l/min): ";C

62 INPUT "R-R (sec): ";R

64 INPUT "OPEN TIME (sec/min):";T

66 F=C*R/(60*T) @ V=F/(.0445*SQR(P1))

68 INPUT "MITRAL 1=YES 2=NO ";K

70 IF K=1 THEN LET V=V/.7

72 PRINT "MEAN FLOW (l/sec) :";F @ PAUSE

74 PRINT "AREA (cm^2) :";V

**Anatomic Shunts**

The program SHUNTS calculates the bi-directional shunts as a percentage. The shunts are R-L (right-left) shunt and the L-R (left-right) shunts.

Variables:

Input:

R1: right pulmonary artery

R2: right atrium

L1: left pulmonary artery

L2: left ventricle

**Program SHUNT**

230 bytes, 1/27/2019

10 DESTROY L1,L2,R1,R2,L3,R3

20 INPUT "R-PULMONARY%:";R1

30 INPUT "R.ATRIUM%:";R2

40 INPUT "L-PULMONARY%:";L1

50 INPUT "L.ATRIUM%";L2

60 R3=(L1-L2)/(L1-R2)*100

65 L3=(R1-R2)/(L1-R2)*100

70 PRINT USING ' "R-L SHUNT:"4D.DD"%" ';R3 @ PAUSE

75 PRINT USING ' "L-R SHUNT:"4D.DD"%" ';L3

90 END

**Stroke Work**

The program STRKWORK calculates stroke work and stroke work index based on pressure, cardiac output (CO), R-R interval (seconds), and body surface area (BSA). The BSA is optional but is needed to calculate stroke work index.

**Program STRKWORK**

404 bytes, 1/28/2019

10 DESTROY S,S1,P,P1,R,C,N,K,D,B

14 DISP "P=PRESSURE mmHg" @ WAIT .5

20 N=0 @ P=0

25 INPUT "P 1:AVG 2:DATA ";K

30 IF K=1 THEN 50

40 INPUT "P. DATA PT: ";D

42 P=P+D @ N=N+1 @ P1=P/N

44 INPUT "DONE? 1=YES 2=NO ";K

46 IF K=2 THEN 40 ELSE 60

50 INPUT "AVG P: ";P1

60 INPUT "R-R INTERVAL (sec):";R

62 INPUT "CO (L/MIN): ";C

70 S=13.6*P1*C*R/60

72 PRINT "SW =";S;"(gm m)" @ PAUSE

80 INPUT "BSA? (m^2) (0=NONE): ";B

82 IF B=0 THEN 90

84 S1=S/B

86 PRINT "SWI: ";S1;"gm m/m^2"

90 END

Eddie

All original content copyright, © 2011-2019. Edward Shore. Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited. This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.