Post Reply 
Looking for the massive text Formulae HP uses for their Equation Library in 50G/49G
03-06-2017, 08:26 PM (This post was last modified: 03-09-2017 01:47 AM by Han.)
Post: #14
RE: Looking for the massive text Formulae HP uses for their Equation Library in 50G/49G
The formulas for Forces and Energy > Linear Mechanics show up as syntax errors for all but F=m*a. This seems to happen in a few other places (e.g. Fluids > Flow in Full Pipes)

There is a bug in your PutIt() command.

CAS.expr( (lst[aa]) + ":=" + (0) );

This creates a CAS program named lst. You can (partially) fix the issue with:

CAS.expr(EVAL( lst[aa] + ":=" + 0 ));

You'll have to force a redraw of the Symb view. Also, keep in mind that the equations list is extremely volatile, especially when users start using the CAS and modify and/or delete the variables used in the system.

EDIT:

I took the liberty of removing unnecessary local variables once you convert a formula such as 'F=m*a' over to "F=m*a" (since both can be stored into E0 through E9). Also, there are a few places that you did not reset all the E0-E9's (e.g. check the Fluids section) and some systems don't have all their variables declared. Some of these I fixed where I saw them.

Lastly, to speed up debugging and overall performance (though probably not noticeable to the user), you may want to use CASE blocks so that your program does not actually run through the entire list of IF THEN END statements (i.e. exit CASE as soon as an IF statement is true).

Code:
#pragma mode( separator(.,;) integer(h32) )
SUBSS();
PUTMENSU();
PuTt(lst);
mSEL;
me0;
run;
m1m;
AmA;
BmBB:=0;
mTXTs := {
    {"EΩ","C_&B_","Fluids","Forces","Gases","1► 2"},
    {"Heat","Magnet","Motion","Optics","Oscill","2► 3"},
    {"Geom","SSD","Stress","Waves","","3► 1"}
};
eqme:={
    {
        "Coulomb's Law" ,"Capacitor Charge" ,"Ohm's Law and Power", "DC Inductor Voltage",
        "Voltage Divider","RC Transient","Current Divider","RL Transient","Wire Resistance",
        "Resonant Frequency","Plate Capacitor","Series and Parallel Resistors",
        "Series and Parallel Capacitors","Series and Parallel Inductors",
        "Cylindrical Capacitor","Solenoid Inductance","Capacitance Energy","Toroid Inductance",
        "Inductive Energy","Sinusoidal Voltage","RLC Current Delay","Sinusoidal Current",
        "DC Capacitor Current"
    },
    {
        "Elastic Buckling", "Eccentric Columns","Cantilever Deflection","Simple Deflection",
        "Cantilever Slope","Simple Slope","Cantilever Moment","Simple Moment",
        "Cantilever Shear","Simple Sheer"
    },
    {
        "Pressure at Depth","Flow with Losses","Bernoulli Equation","Flow in Full Pipes"
    },
    {
        "Linear Mechanics","1D Elastic Collisions","Angular Mechanics","Drag Force",
        "Centripetal Force","Law of Gravitation","Hooke’s Law","Mass Energy Relation"
    },
    {
        "Ideal Gas Law","Isentropic Flow","Ideal Gas State Change","Real Gas Law",
        "Isothermal Expansion","Real Gas State Change","Polytropic Processes",
        "Kinetic Theory"
    },
    {
        "Heat Capacity","Convection","Thermal Expansion","Conduction","Black Body Radiation",
        "Convection+Conduction"
    },
    {
        "Straight Wire","B Field in Solenoid","Force Between Wires","B Field in Toroid"
    },
    {
        "Linear Motion","Circular Motion","Object in Free Fall","Terminal Velocity",
        "Projectile Motion","Escape Velocity","Angular Motion"
    },
    {
        "Law of Refraction","Critical Angle","Brewster’s Law","Spherical Reflection",
        "Spherical Refraction","Thin Lens"
    },
    {
        "Mass-Spring System","Torsional Pendulum","Simple Pendulum","Simple Harmonic",
        "Conical Pendulum"
    },
    {
        "Circle","Regular Polygon","Ellipse","Circular Ring","Rectangle","Triangle",
        "Cone","Parallelepiped","Cylinder","Sphere"
    },
    {
        "PN Step Junctions","Bipolar Transistors","NMOS Transistors","JFETs"
    },
    {
        "Normal Stress","Stress on an Element","Shear Stress","Mohrs Circle"
    },
    {
        "Transverse Waves","Sound Waves","Longitudinal Waves"
    }
};

EXPORT toshLib()
BEGIN
    AmA:=1;
    run:=1;
    DIMGROB_P(G1,320,224);
    BLIT_P(G1,G0,0,0,320,224);
    
    WHILE run DO
    BLIT_P(0,0,320,224,G1);
        LOCAL me0,m1m,mx,my, mTXT;
        WHILE MOUSE(1)≥0 DO
            IF GETKEY==4 THEN run:=0; CONTINUE(2); END;
        END;
        mTXT := mTXTs[AmA];
        PUTMENSU(mTXT);
        
        REPEAT
            me0:=MOUSE;
            m1m:=me0[1];
            IF  GETKEY==4 THEN run:=0; CONTINUE(2); END;
        UNTIL SIZE(m1m)>0;
        mx:=m1m[1];
        my:=m1m[2];
        IF my≥220 AND my≤239 THEN
            CASE
                IF mx≥0 AND mx≤51 THEN mSEL:=78; END;
                IF mx≥53 AND mx≤104 THEN mSEL:=79; END;
                IF mx≥106 AND mx≤157 THEN mSEL:=73; END;
                IF mx≥159 AND mx≤210 THEN mSEL:=75; END;
                IF mx≥212 AND mx≤263 THEN mSEL:=77; END;
                IF mx≥265 AND mx≤319 THEN
                    mSEL:=0;  AmA:=AmA+1;
                    IF AmA>size(mTXTs) THEN AmA:=1;  END;
                END;
            END;
            IF mSEL<>0 THEN SUBSS(mSEL,AmA); END;
        END;
    END;
END;


PUTMENSU(mTXT)
BEGIN
    DRAWMENU(mTXT[1],mTXT[2],mTXT[3],mTXT[4],mTXT[5],mTXT[6]);
END;


PuTt(lst)
BEGIN
    LOCAL aa;
    FOR aa FROM 1 TO size(lst) DO
        CAS.expr(EVAL(lst[aa] +":=" +0));
    END;
END;


RESETSYMB()
BEGIN
    STARTAPP("Solve");
    UNCHECK({0,1,2,3,4,5,6,7,8,9});
    ""▶E2;  ""▶E3;  ""▶E4; ""▶E5;
    ""▶E6; ""▶E7; ""▶E8; ""▶E9; ""▶E0;
    run:=0;
END;


SUBSS(mSEL,AmA)
BEGIN
    LOCAL ch,cih;
    
    IF mSEL ==78 AND AmA==1 THEN
        CHOOSE(ch,"Electricity",eqme[1]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"q1","q2","r", "ξr"});
                "F=(q1*q2)/(4*π*r^2*ξr*8.85418781762ᴇ−12)"▶E1; 
            END;
            IF ch==2 THEN
                PuTt({"q"});
                "q=C*V"▶E1; 
            END;
            IF ch==3 THEN
                "V=I*R"▶E1;  "P=I*V"▶E2;  "P=I^2*R"▶E3;  "P=V^2/R"▶E4;
            END;
            IF ch==4 THEN
                PuTt({"∆t","∆I","ti","tf","lf","li"});
                "V=-L*(∆I/∆t)"▶E1; "∆I=(-lf-li)"▶E2; "∆t=(tf-ti)"▶E3; 
            END;
            IF ch==5 THEN
                PuTt({"R1","R2", "Vs","v1"});
                "v1=(Vs*R1)/(R1+R2)"▶E1; 
            END;
            IF ch==6 THEN
                PuTt({"vf","vi","t"});
                "V=vf-(vf-vi)*e^(-t/(R*C))"▶E1; 
            END;
            IF ch==7 THEN
                PuTt({"R1","R2","Is","I2"});
                "I2=(Is*R1)/(R1+R2)"▶E1;
            END;
            IF ch==8 THEN
                PuTt({"vf","vi","t"});
                "I=(1/R)*(vf-(vf-vi)*e^((-R*t)/L))"▶E1;
            END;
            IF ch==9 THEN
                PuTt({"ρ"});
                "R=ρ*(L/A)"▶E1;
            END;
            IF ch==10 THEN
                PuTt({"ɷ0","fo","Qs","Qp"});
                "Qs=(1/R)*(√(L/C))"▶E1;  "Qp=(R)*(√(C/L))"▶E2;  "ɷ0=2*π*fo"▶E3;  "ɷ0=(1/√(C*L))"▶E4;
            END;
            IF ch==11 THEN
                PuTt({"d","ξr"});
                "C=(ξr*8.85418781762ᴇ−12*A)/d"▶E1;
            END;
            IF ch==12 THEN
                PuTt({"R1","R2","Req"});
                CHOOSE(cih,"Resistors","Series","Parallel");
                IF cih==1 THEN "R1+R2=Rs"▶E1; END;
                IF cih==2 THEN "(R1+R2)=Rp"▶E1; END;
            END;
            IF ch==13 THEN
                PuTt({"c1","c2","Ceq"});
                CHOOSE(cih,"Capacitors","Series","Parallel");
                IF cih==1 THEN "(c1+c2)=Cs"▶E1; END;
                IF cih==2 THEN "c1+c2=Cp"▶E1; END;
            END;
            IF ch==14 THEN
                PuTt({"Ll1","Ll2","Leq"});
                CHOOSE(cih,"Inductors","Series","Parallel");
                IF cih==1 THEN "Ls=Ll1+Ll2=Ls"▶E1; END;
                IF cih==2 THEN "(Ll1+Ll2)=Lp"▶E2; END;
            END;
            IF ch==15 THEN
                PuTt({"ro","ri","ξr"});
                "C=(2*π*L*ξr*8.85418781762ᴇ−12)/ln(ro/ri)"▶E1;
            END;
            IF ch==16 THEN
                PuTt({"h","n","µr"});
                "L=(n^2*A*h*µr*1.25663706144ᴇ−6)"▶E1;
            END;
            IF ch==17 THEN
                "E=(C*V^2)/2"▶E1;
            END;
            IF ch==18 THEN
                PuTt({"ri","ro","µr","h"});
                "L=(h*N^2*µr*1.25663706144ᴇ−6/(2*π))*ln(ro/ri)"▶E1;
            END;
            IF ch==19 THEN
                "E=(L*I^2)/2"▶E1;
            END;
            IF ch==20 THEN
                PuTt({"ɷ","t", "f", "Vmax","φ"});
                "V=Vmax*sin(ɷ*t+φ)"▶E1; "ɷ=2*π*f"▶E2; 
            END;
            IF ch==21 THEN
                PuTt({"Φs","Φp","f","ɷ","XC","XL"});
                "TAN(Φs)=(XL-XC)/R"▶E1; "TAN(Φp)=(-(XL)+(XC))/R"▶E2;
                "XC=1/(ɷ*C)"▶E3;  "XL=ɷ*L"▶E4; "ɷ=2*π*f"▶E5;
            END;
            IF ch==22 THEN
                PuTt({"ɷ","t", "f" ,"Imax"});
                "I=Imax*sin(ɷ*t+φ)"▶E1;  "ɷ=2*π*f"▶E2; 
            END;
            IF ch==23 THEN
                PuTt({"∆v","∆t","vf","vi", "tf","ti"});
                "I=C*(∆v/∆t)"▶E1; "∆v=(-vf-vi)"▶E2;  "∆t=(tf-ti)"▶E3;
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==79 AND AmA==1 THEN
        CHOOSE(ch,"Columns & Beams",eqme[2]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"Pcr","r","σcr"});
                "Pcr=(E*A*π^2)/(K*L/r)^2"▶E1; "Pcr=(E*I*π^2)/(K*L)^2"▶E2;  "σcr=(Pcr)/A"▶E3; "r=√(I/A)"▶E4;
            END;
            IF ch==2 THEN
                PuTt({"c","r","Є","σmax"});
                "σmax=P*(c*Є/(r^2*cos(1/2*K*L*√(P/(A*E))/r))+1)/A"▶E1;  "r=√(I/A)"▶E2;
            END;
            IF ch==3 THEN
                PuTt({"y","a","w","x"});
                "y=-w*x^2*(-4*L*x+6*L^2+x^2)/(24*E*I)+P*x^2*(-3*a+x)/(6*E*I)+M*x^2/(2*E*I)"▶E1;
            END;
            IF ch==4 THEN
                PuTt({"a","w","x","y"});
                "y=((P*(L-a)*x/(6*L*E*I))*(x^2+(L-a)^2-L^2)-(M*x/(E*I))*(c-(x^2/(6*L))-(L/3)-(c^2/(2*L)))-(w*x/(24*E*I))*(L^3+x^2*(x-2*L)))"▶E1; 
            END;
            IF ch==5 THEN
                PuTt({"a","w","x","Θ"});
                "Θ=(P*x/(2*E*I))*(x-2*a)+(M*x/(E*I))-(w*x/(6*E*I))*(3*L^2-3*L*x+x^2)"▶E1; 
            END;
            IF ch==6 THEN
                PuTt({"a","w","x","Θ","c"});
                "Θ=(P*(L-a)/(6*L*E*I))*(3*x^2+(L-a)^2-L^2)-(M/(E*I))*(c-(x^2/(2*L))-(L/3)-(c^2/(2*L)))-(w/(24*E*I))*(L^3+x^2*(4*x-6*L))"▶E1; 
            END;
            IF ch==7 THEN
                PuTt({"a","w","x","Mx"});
                "Mx=P*(x-a)+M-(W/2)*(L^2-2*L*x+x^2)"▶E1; 
            END;
            IF ch==8 THEN
                PuTt({"a","w","x","Mx"});
                "Mx=(P*(L-a)*x/L)+(M*x/L)+(w*x/2)*(L-x)"▶E1; 
            END;
            IF ch==9 THEN
                PuTt({"x","w"});
                "V=P+w*(L-x)"▶E1;  
            END;
            IF ch==10 THEN
                PuTt({"a","w","x"});
                "V=(P*(L-a)/L)+(M/L)+(w/2)*(L-2*x)"▶E1; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==73 AND AmA==1 THEN
        CHOOSE(ch,"Fluids",eqme[3]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"P0","ρ","h"});
                "P=P0+ρ*9.80665*h"▶E1; 
            END;
            IF ch==2 THEN
                PuTt({"∆P","ρ","v1","v2","∆y","hL","A1","A2","y2","y1","D2","D1","P2","P1"});
                "W=M*((∆P/ρ)+((v2^2-v1^2)/2)+9.80665*∆y+hL)"▶E1; "W=M*((∆P/ρ)+((v2^2)*(1-(A2/A1)^2)/2)+9.80665*∆y+hL)"▶E2;
                "W=ρ*Q*((∆P/ρ)+((v1^2)*(1-(A1/A2)^2)/2)+9.80665*∆y+hL)"▶E3; "ρ*Q=M"▶E4;
                "A1=(π*D1^2)/4"▶E5; "A2=(π*D2^2)/4"▶E6; "Q=A1*v1"▶E7; "Q=A2*v2"▶E8; "∆P=P2-P1"▶E9; "∆y=y2-y1"▶E0;
            END;
            IF ch==3 THEN
                PuTt({"∆P","ρ","v1","v2","∆y","hL","A1","A2","y2","y1","D2","D1","P2","P1"});
                "0=((∆P/ρ)+((v2^2-v1^2)/2)+9.80665*∆y+hL)"▶E1;  "0=((∆P/ρ)+((v2^2)*(1-(A2/A1)^2)/2)+9.80665*∆y)"▶E2;
                "0=((∆P/ρ)+((v1^2)*(1-(A1/A2)^2)/2)+9.80665*∆y)"▶E3; "ρ*Q=M"▶E4;
                "A1=(π*D1^2)/4"▶E5; "A2=(π*D2^2)/4"▶E6; "Q=A1*v1"▶E7; "Q=A2*v2"▶E8; "∆P=P2-P1"▶E9; "∆y=y2-y1"▶E0;
            END;
            IF ch==4 THEN
                PuTt({"∆P","ρ","ΣK","vavg","f","∆y","µ","Ren","n"});
                "W=(1/4*D^2*π*ρ*vavg*(vavg^2*(2*L*f/D+1/2*ΣK)+9.80665*∆y+∆P/ρ))"▶E1;
                "Ren=D*vavg*ρ/µ"▶E2; "n=ρ/µ"▶E3; "A=(π*D^2)/4"▶E4; "Q=A*vavg"▶E5; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==75 AND AmA==1 THEN
        CHOOSE(ch,"Forces and Energy",eqme[4]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"a","m","vi","vf","Ki","Kf","x","v","t","Pavg"});
                "m*a=F"▶E1;  "Ki=m*vi/2"▶E2;  "Kf=m*vf/2"▶E3;  "W=F*x"▶E4;  "Kf-Ki=W"▶E5;  "W=F*v"▶E6;  "Pavg=W/t"▶E7;  "vf=vi+a*t"▶E8; 
            END;
            IF ch==2 THEN
                PuTt({"m1","m2","v1i","v2f"});
                "v1f=((m1-m2)/(m1+m2))*v1i"▶E1;  "v2f=((2*m2)/(m1+m2))*v1i"▶E2;
            END;
            IF ch==3 THEN
                PuTt({"α","ɷf","ɷi","τ","at","Ki","Kf","Θ","r","t","Pavg","ɷ"});
                "I*α=τ"▶E1;  "Ki=I*ɷi/2"▶E2;  "Kf=I*ɷf/2"▶E3;  "W=r*Θ"▶E4;  "Kf-Ki=W"▶E5;  "P=ɷ*τ"▶E6;  "Pavg=W/t"▶E7;  "ɷf=ɷi+α*t"▶E8;  "at=α*r"▶E9;  "2*π*N=ɷ"▶E0; 
            END;
            IF ch==4 THEN
                PuTt({"ρ","v","Cd"});
                "F=Cd*(ρ*v^2/2)*A"▶E1; 
            END;
            IF ch==5 THEN
                PuTt({"ɷ","r","m","v","ar"});
                "F=m*ɷ^2*r"▶E1; "ɷ=v/r"▶E2; "ar=v^2/r"▶E3; "2*π*N=ɷ"▶E4;
            END;
            IF ch=6 THEN
                PuTt({"m1","m2","r"});
                "F=6.67384ᴇ−11*(m1*m2/r^2)"▶E1; 
            END;
            IF ch==7 THEN
                PuTt({"k","x"});
                "F=-k*x"▶E1; "W=-k*x^2/2"▶E2;
            END;
            IF ch==8 THEN
                PuTt({"m"});
                "E=m*299792458^2"▶E1; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==77 AND AmA==1 THEN
        CHOOSE(ch,"Gases",eqme[5]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"MW","m","n"});
                "P*V=n*8.3144621*T"▶E1; "m=n*MW"▶E2;
            END;
            IF ch==2 THEN
                PuTt({"P0","At","T0","ρ0","ρ","k"});
                "(A/At)=((2/(k+1)*(1/2*M^2*(k-1)+1))^((k+1)/(2*(k-1)))/M)"▶E1; "(T/T0)=(2/(2+(k-1)*M^2))"▶E2;
                "(P/P0)=((T/T0)^(k/(k-1)))"▶E3; "(ρ/ρ0)=((T/T0)^(1/(k-1)))"▶E4;
            END;
            IF ch==3 THEN
                PuTt({"Pf","Vf","Tf","Pii","Vi","Ti"});
                "Pf*Vf/Tf=Vi*Pii/Ti"▶E1; 
            END;
            IF ch==4 THEN
                PuTt({"MW","m","n"});
                "P*V=n*Z*R*T"▶E1; "m=n*MW"▶E2;
            END;
            IF ch==5 THEN
                PuTt({"Vf","Vi","h"});
                "W = (8.3144621*T*n*ln(Vf/Vi))"▶E1; 
            END;
            IF ch=6 THEN
                PuTt({"Pf","Vf","Tf","Zf","Pii","Vi","Ti","Zi"});
                "(Pf*Vf/(Tf*Zf))=(Vi*Pii/(Ti*Zi))"▶E1; 
            END;
            IF ch==7 THEN
                PuTt({"Pf","Vf","Tf","Zf","Pii","Vi","Ti","n"});
                "Pf/Pii=(Vf/Vi)^(-n)"▶E1; "Tf/Ti=(Pf/Pii)^((n-1)/n)"▶E2;
            END;
            IF ch==8 THEN
                PuTt({"λ","d","n","vrms","MW","n","m"});
                "λ=1/(√2*d^2*π*6.02214129e23*n/V)"▶E1; "P=n*MW*vrms^2/(3*V)"▶E2; "vrms=√(3*8.3144621*T/MW)"▶E3; "m=n*MW"▶E4;
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    
    IF mSEL ==78 AND AmA==2 THEN
        CHOOSE(ch,"Heat Transfer",eqme[6]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"m","c","ΔT"});
                "Q=m*c*ΔT"▶E1;  "Q=m*c*(Tf-Ti)"▶E2; 
            END;
            IF ch==2 THEN
                PuTt({"q","ΔT","h","Th","Tc"});
                "q=h*A*ΔT"▶E1;  "q=h*A*(Th-Tc)"▶E2; 
            END;
            IF ch==3 THEN
                PuTt({"δ","ΔT","α","Tf","Ti"});
                "δ=α*L*ΔT"▶E1; "δ=α*L*(Tf-Ti)"▶E2; 
            END;
            IF ch==4 THEN
                PuTt({"k","q","ΔT"});
                "q=(k*A/L)*ΔT"▶E1; "q=(k*A/L)*(Th-Tc)"▶E2;
            END;
            IF ch==5 THEN
                PuTt({"eb","f","λ2","λ1","eb12","λmax","c3","q"});
                "eb =σ*T^4"▶E1; "eb12=f*eb"▶E1; "λmax*T=c3"▶E1; "q=eb*A"▶E1; 
            END;
            IF ch=6 THEN
                PuTt({"q","ΔT","h1","Th","Tc","L11","L21","L31","k1","k2","k3","h2"});
                "q=(A*ΔT)/(1/h1+L11/k1+L21/k2+L31/k3+1/h3)"▶E1; 
                "q=(A*(Th-Tc))/(1/h1+L11/k1+L21/k2+L31/k3+1/h3)"▶E1; "U=q/(A*ΔT)"▶E1;  " U=q/(A*(Th-Tc))"▶E1;
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==79 AND AmA==2 THEN
        CHOOSE(ch,"Magnetism",eqme[7]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"µr","r"});
                "B = I*1.25663706144e−6*µr/(2*π*r)"▶E1; 
            END;
            IF ch==2 THEN
                PuTt({"µr","n"});
                "B = 1.25663706144e−6*µr*I*n"▶E1; 
            END;
            IF ch==3 THEN
                PuTt({"Ia","Ib","µr","d","Fba"});
                "Fba=(1.25663706144e−6*µr*L*Ib*Ia/(2*π*d))"▶E1; 
            END;
            IF ch==4 THEN
                PuTt({"ri","µr","ro"});
                "B=(1.25663706144e−6*µr*I*N/(2*π))*(2/(ro+ri))"▶E1; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==73 AND AmA==2 THEN
        CHOOSE(ch,"Motion",eqme[8]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"v0","x","x0","a","t","v"});
                "x=x0+v0*t+(1/2)*a*t^2"▶E1;  "x=x0+v*t+(1/2)*a*t^2"▶E2;  "x=x0+(1/2)*(v0+v)*t"▶E3;  "v=v0+a*t"▶E4; 
            END;
            IF ch==2 THEN
                PuTt({"ar","v","r","ɷ"});
                "ɷ=v/r"▶E1;  "ar=v^2/r"▶E2; "ɷ==2*π*N"▶E3; 
            END;
            IF ch==3 THEN
                PuTt({"y","y0","v0","t","v"});
                "y=y0+v0*t+(1/2)*9.80665*t^2"▶E1; "y=y0+v*t+(1/2)*9.80665*t^2"▶E2; "v^2=v0^2+2*9.80665*(y+y0)"▶E3;  "v=v0+9.80665*t"▶E4; 
            END;
            IF ch==4 THEN
                PuTt({"v","m","Cd","ρ"});
                "v=√(2*m*9.80665/(Cd*ρ*A ))"▶E1; 
            END;
            IF ch==5 THEN
                PuTt({"x0","x","v0","θ0","t","y0","y","vx","vy"});
                "x=x0+v0*COS(θ0)*t"▶E1;  "y=y0+v0*SIN(θ0)*t-(1/2)*9.80665*t^2"▶E1;  "vx =v0*COS(θ0)"▶E1;
                "vy =v0*SIN(θ0)-9.80665*t"▶E1;  "R=(v0^2)/9.80665*SIN(2*θ0)"▶E1; 
            END;
            IF ch=6 THEN
                PuTt({"v"});
                "v=√(2*6.67384ᴇ−11*M/R)"▶E1; 
            END;
            IF ch==7 THEN
                PuTt({"θ0","ɷ0","t","α","ɷ"});
                "θ=θ0+ɷ0*t+(1/2)*α*t^2"▶E1; "θ=θ0+ɷ*t+(1/2)*α*t^2"▶E1; "θ=θ0+(1/2)*(ɷ0+ɷ)*t"▶E1;  "ɷ=ɷ0+α*t"▶E1; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==75 AND AmA==2 THEN
        CHOOSE(ch,"Optics",eqme[9]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"θ1","θ2","n1","n2"});
                "(n1*sin(θ1))=(n2*sin(θ2))"▶E1; 
            END;
            IF ch==2 THEN
                PuTt({"θc","n1","n2"});
                "sin(θc)=(n1/n2)"▶E1; 
            END;
            IF ch==3 THEN
                PuTt({"θb","n1","n2"});
                "TAN(θb)=(n2/n1)"▶E1; "θb+θ2=90"▶E2; 
            END;
            IF ch==4 THEN
                PuTt({"m","r"});
                "1/F=(1/U)+(1/V)"▶E1;  "F=r/2"▶E2;  "m=-V/U"▶E3; 
            END;
            IF ch==5 THEN
                PuTt({"n1","n2","r"});
                "(n1/U)+(n2/V)=(n2-n1)/r"▶E1; 
            END;
            IF ch==6 THEN
                PuTt({"n","r1","r2","m"});
                "1/F=(1/U)+(1/V)"▶E1;  "1/F=(n-1)*(1/r1-1/r2)"▶E2; "m=-V/U"▶E3; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
        
    
    IF mSEL ==77 AND AmA==2 THEN
        CHOOSE(ch,"Oscillations",eqme[10]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"ω","k","m","f"});
                "ω=√(k/m)"▶E1; "T=(2*π/ω)"▶E2; "ω=2*π*f"▶E3; 
            END;
            IF ch==2 THEN
                PuTt({"ω","f","Im"});
                "ω=√(G*J/(L*Im))"▶E1; "T=(2*π/ω)"▶E2; "ω=2*π*f"▶E3; 
            END;
            IF ch==3 THEN
                PuTt({"ω","f"});
                "ω=√(9.80665/L)"▶E1; "T=(2*π/ω)"▶E2; "ω=2*π*f"▶E3; 
            END;
            IF ch==4 THEN
                PuTt({"ω","f","a","v","x","xm","t","φ"});
                "x=(xm*cos(t*ω+φ))"▶E1;  "v=(-ω*xm*sin(t*ω+φ))"▶E2;  "ω=2*π*f"▶E3;  "a=(-(ω^2)*xm*cos(t*ω+φ))"▶E4; 
            END;
            IF ch==5 THEN
                PuTt({"h","ω","f"});
                "ω=√(9.80665/h)"▶E1; "h=L*cos(θ)"▶E2; "ω=2*π*f"▶E3;  "T=2*π/ω"▶E4;  
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    
    
    IF mSEL ==78 AND AmA=3 THEN
        CHOOSE(ch,"Geometry",eqme[11]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"r","Id","d"});
                "A=π*r^2"▶E1; "C=2*π*r"▶E2; "I=π*r^4/4"▶E3; "J=π*r^4/2"▶E4;  "Id=I+A*d^2"▶E5; 
            END;
            IF ch==2 THEN
                PuTt({"b","d","h","Id"});
                "A=π*b*h"▶E1; "C=2*π*√((b^2+h^2)/2)"▶E2; "I=π*b*h^3/4"▶E3; "J=(π*b*h/4)*(b^2+h^2)"▶E4;  "Id=I+A*d^2"▶E5; 
            END;
            IF ch==3 THEN
                PuTt({"b","d","h","Id"});
                "A=π*b*h"▶E1; "C=2*π*√((b^2+h^2)/2)"▶E2; "I=π*b*h^3/4"▶E3; "J=(π*b*h/4)*(b^2+h^2)"▶E4;  "Id=I+A*d^2"▶E5; 
            END;
            IF ch==4 THEN
                PuTt({"ro","ri","h","Id"});
                "A=π*(ro^2-ri^2)"▶E1; "I=π*((ro^4-ri^4)/4)"▶E2; "J=π*((ro^4-ri^4)/2)"▶E3; "Id=I+A*d^2"▶E4; 
            END;
            IF ch==5 THEN
                PuTt({"b","d","h","Id"});
                "A =b*h"▶E1;  "P=2*b+2*h"▶E2; "I =(b*h^3)/12"▶E3; "J=(b*h)/12*(b^2+h^2)"▶E4;  "Id =I+A*d^2"▶E5; 
            END;
            IF ch=6 THEN
                PuTt({"b","d","h","Id","v","Ix"});
                "A =(b*h)/2"▶E1;  "P=b+√(v^2+h^2)+√((b-v)^2+h^2)"▶E2; "Ix =(b*h^3)/36"▶E3;
                "Iy =(b*h)/36*(b^2-b*v+v^2)"▶E4; "J=(b*h)/36*(h^2+b^2-b*v+v^2)"▶E5;  "Id=Ix+A*d^2"▶E6; 
            END;
            IF ch==7 THEN
                PuTt({"r","d","h","Id","v","Ixx","m","Izz"});
                "V =π/3*r^2*h"▶E1; "A=π*r^2+π*r*√(r^2+h^2 )"▶E2; "Ixx =3/20*m*r^2+3/80*m*h^2"▶E3;
                "Izz =3/10*m*r^2"▶E4; "Id =Ixx+m*d^2"▶E5; 
            END;
            IF ch==8 THEN
                PuTt({"b","t","h","Id","m","d"});
                "V =b*h*t"▶E1; "A =2*(b*h+b*t+h*t)"▶E2; "I =1/12*m*(h^2+t^2)"▶E3; "Id =I+m*d^2"▶E4;
            END;
            IF ch==9 THEN
                PuTt({"r","d","h","Id","v","Ixx","m","Izz"});
                "V=π*r^2*h"▶E1; "A=2*π*r^2+2*π*r*h"▶E2; "Ixx=1/4*m*r^2+1/12*m*h^2"▶E3;  "Izz =1/2*m*r^2"▶E4; "Id =Ixx+m*d^2"▶E5;
            END;
            IF ch==10 THEN
                PuTt({"r","d","h","Id","v","Ixx","m"});
                "V=4/3*π*r^3"▶E1; "A=4*π*r^2"▶E2; "I=2/5*m*r^2"▶E3; "Id=I+m*d^2"▶E4; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==79 AND AmA==3 THEN
        CHOOSE(ch,"Solid State Devices",eqme[12]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"Vbi","NA","ND","xd","Va","Cj","Emax","BV","Js","Aj","ΔW","ΔL","xj","Cj"});
                "Vbi =(1.3806488ᴇ−23*T)/1.602176565ᴇ−19* LN((NA*ND)/(8.72ᴇ15^2))"▶E1;
                "xd =√((2*1.0341691371ᴇ−10*8.85418781762ᴇ−12/1.602176565ᴇ−19)*(Vbi-Va)*(1/NA+1/ND))"▶E2;
                "Cj =(1.0341691371ᴇ−10*8.85418781762ᴇ−12)/xd"▶E3;  "Emax =(2*(Vbi-Va))/xd"▶E4;
                "BV =(1.0341691371ᴇ−10*8.85418781762ᴇ−12*E1^2)/(2*1.602176565ᴇ−19)*(1/NA+1/ND)"▶E5;
                "J=Js*(e^(Va*1.602176565ᴇ−19/(T*1.3806488ᴇ−23))-1)"▶E6; "Aj =(W+2*ΔW)*(L+2*ΔL)+π*(W+L+2*ΔW+2*ΔL)*xj+2*π*xj^2"▶E7;   
                "I =J*Aj"▶E8; 
            END;
            IF ch==2 THEN
                PuTt({"IE","VBE","αR","ICS","IC","ICS","VBC","IES","αF","IS","IB","ICO","ICEO","VCEsat","Cj"});
                "IE=-IES*(e^((1.602176565ᴇ−19*VBE)/(1.3806488ᴇ−23*T))-1)+αR*ICS*(e^((1.602176565ᴇ−19*VBE)/(1.3806488ᴇ−23*T))-1)"▶E1;
                "IC=-ICS*(e^((1.602176565ᴇ−19*VBC)/(1.3806488ᴇ−23*T))-1)+αF*IES*(e^((1.602176565ᴇ−19*VBE)/(1.3806488ᴇ−23*T))-1)"▶E2;
                "IS=αR*IES"▶E3;  "IS =αR*ICS"▶E4;  "IB+IE+IC=0"▶E5; "ICO=ICS*(1-αF*αR)"▶E6;  "ICEO=ICO/(1-αF)"▶E7;
                "VCEsat=(1.3806488ᴇ−23*T)/1.602176565ᴇ−19*LN((1+IC/IB*(1-αR))/(αR*(1-IC/IB*((1-αF)/αF))))"▶E8; 
            END;
            IF ch==3 THEN
                PuTt({"We","ΔW","Le","ΔL","Cox","tox","IDS","μn","VGS","Vt","VDS","λ","ˠ","NA","Vt0","φp","VBS","gds","gm","VDsat"});
                "We =W-2*ΔW"▶E1;  "Le =L-2*ΔL"▶E2; "Cox=(3.9000217424*8.85418781762ᴇ−12)/tox"▶E3;
                "IDS =Cox*μn*(We/Le)*((VGS-Vt)*VDS-(VDS^2)/2)*(1+λ*VDS)"▶E4;
                "ˠ=(√(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12*1.602176565ᴇ−19*NA))/Cox"▶E5;
                "Vt=Vt0+ˠ*(√(2*ABS(φp)-ABS(VBS))-√(2*ABS(φp)))"▶E6;
                "φp=(-1.3806488ᴇ−23*T)/1.602176565ᴇ−19*LN(NA/8.72ᴇ15)"▶E7; "gds=IDS*λ"▶E8;
                "gm =√(Cox*μn*(We/Le)*(1+λ*VDS)*2*IDS)"▶E9; "VDsat=VGS-Vt"▶E0; 
            END;
            IF ch==4 THEN
                PuTt({"Vbi","ND","xdmax","VGS","VDS","GO","μn","a","ID","VDsat","Vt","gm"});
                "Vbi =(1.3806488ᴇ−23*T)/1.602176565ᴇ−19*LN(ND/8.72ᴇ15)"▶E1;
                "xdmax =√(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12/1.602176565ᴇ−19*ND*(Vbi-VGS+VDS))"▶E2;
                "GO =1.602176565ᴇ−19*ND*μn*((a*W)/L)"▶E3; 
                "ID=G0*(VDS-(2/3*√(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12/(1.602176565ᴇ−19*ND*a^2 )))*(((Vbi-VGS+VDS)^(3/2)-(Vbi-VGS)^(3/2))))"▶E4;
                "VDsat=(1.602176565ᴇ−19*ND*a^2)/(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12)-(Vbi-VGS)"▶E5;
                "Vt=Vbi-(1.602176565ᴇ−19*ND*a^2)/(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12)"▶E6;
                "gm =G0*(1-√(2*1.0341691371ᴇ−10*8.85418781762ᴇ−12/(1.602176565ᴇ−19*ND*a^2)*(Vbi-VGS)))"▶E7; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==73 AND AmA==3 THEN
        CHOOSE(ch,"Stress Analysis",eqme[13]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"Є","σ","δ"});
                "σ=E*Є"▶E1; "Є=δ/L"▶E2; "σ=P/A"▶E3; 
            END;
            IF ch==2 THEN
                PuTt({"σy1","σx1","σx","σy","τxy","σ1","σ2","τx1y1"});
                "σx1=(σx+σy)/2+(σx-σy)/2*COS(2*θ)+τxy*SIN(2*θ)"▶E1; "σx1+σy1=σx+σy"▶E2; "τx1y1=-((σx-σy)/2)*SIN(2*θ)+τxy*COS(2*θ)"▶E3; 
            END;
            IF ch==3 THEN
                PuTt({"τ","ˠ","ф","r"});
                "τ=G*ˠ"▶E1; "ˠ=r*ф/L"▶E2; "τ=(T*r)/J"▶E3; 
            END;
            IF ch==4 THEN
                PuTt({"σx","σy","τxy","σ1","σ2","θp1","θp2","τmax","θs","σavg"});
                "σ1=(σx+σy)/2+√((σx-σy)/2+τxy^2 )"▶E1; "σ1+σ2=σx+σy"▶E2; "SIN(2*θp1)=τxy/√(((σx-σy)/2)^2+τxy^2)"▶E3; "θp2 =θp1+90"▶E4;
                "τmax=(σ1-σ2)/2"▶E5; "θs=θp1-45"▶E6;  "σavg=(σx+σy)/2"▶E7; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
    
    IF mSEL ==75 AND AmA==3 THEN
        CHOOSE(ch,"Waves",eqme[14]);
        IF ch THEN RESETSYMB(); END;
        CASE
            IF ch==1 THEN
                PuTt({"ym","y","k","t","v","f","k","ω","λ"});
                "y=ym*SIN(k*x-ω*t)"▶E1; "v=λ*f"▶E2; "k=(2*π)/λ"▶E3; "ω=2*π*f"▶E4; 
            END;
            IF ch==2 THEN
                PuTt({"v","ρ","ω","sm","β","f"});
                "v=√(B/ρ)"▶E1; "I=(1/2)*ρ*v*ω^2*sm^2"▶E2; "β=10*LOG(I/10)"▶E3;  "ω=2*π*f"▶E1; 
            END;
            IF ch==3 THEN
                PuTt({"ym","y","k","t","v","f","k","ω","λ"});
                "y=ym*COS(k*x-ω*t)"▶E1; "v=λ*f"▶E2; "k=(2*π)/λ"▶E3; "ω=2*π*f"▶E4; 
            END;
        END;
        IF ch THEN CHECK(1); STARTVIEW(2,1); END;
    END;
//    IF mSEL ==77 AND AmA==3 THEN
//        CHOOSE(ch,"ITEM5",eqme[15]);
//    END;
END;

Graph 3D | QPI | SolveSys
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: Looking for the massive text Formulae HP uses for their Equation Library in 50G/49G - Han - 03-06-2017 08:26 PM



User(s) browsing this thread: 3 Guest(s)