A69 > How do I make my HP49G do this (Rom 1-19.6)? I would like to have it find the derivative of this : 'x^2+y^2=25' Which should be this: '-x/y' The trick is to enter Y(X) instead of just Y, as Y is dependent on X. So enter: 'X^2+Y(X)^2=25' DERVX 'd1Y(X)' SOLVE and you get '-X/Y(X)' which is what you want. Note that taking a higher order implicit derivative is harder. For that, try this program: << 4 PICK EXLR - -> ind dep o xpr << xpr ind DERIV xpr dep DERIV NEG / EVAL WHILE o 1. > REPEAT DUPDUP ind DERIV ROT dep DERIV ROT * + EVAL 0 1. STO- END SWAP >> >> 'IMPDIFF' STO The input is the equation, the independent variable, the dependent variable, and the order of the derivative, e.g. 4: 'X^2+Y^2=25' 3: 'X' 2: 'Y' 1: 2 and the output is the unsimplified answer and the original equation (if needed for substitution/simplification), e.g. 2: '-(X^2+Y^2)/Y^3' 1: 'X^2+Y^2=25' Note that this is probably not the best code you will ever see, but it works. > How do I make my HP49G do this (Rom 1-19.6)? I would like to have it find the derivative of this : 'x^2+y^2=25' Which should be this: '-x/y' I can do DERVX, Y DERIV, {x y} DERIV, etc... and nothing works yet :-( > I hope my calculator is not already stumped at chapter 4.8!!! (My mind is > still doing quite well, though). Pardon my English, I'm from Canada If y is a function of x, then you must explicitelly tell the HP49G that y depends on x. Your equation should be written as: 'x^2+y(x)^2=25' or else the HP49G takes y as something that doesn't depend on x and so returns 0 as its derivative for x. In RPN mode type 'x^2+y(x)^2=25', press ENTER , type 'x' press ENTER and then DERIV (or red-shift, COS for the curly differentiation d) > I have an application that I'd like to try running on my 48SX. I have > a converter box (A) that translates back and forth from a specialized > machine-control protocol to plain vanilla RS232 (9600 bps, ASCII). > I need to tell this box what I want, listen for the data, crunch it > a little bit, and then send the results out to another box (B) at > 2400 bps. I only have to be able to transmit to B, and I can easily > set it up for real bipolar RS232 or TTL (0v/5v) RS232. The update > rate would never be more than 10 Hz, and probably more like 2 to 5 Hz. > I have already implemented this on an old Compaq desktop 486 running > application. > > What I am thinking of doing is plugging A into the regular serial > port, and interfacing B on the IR port. I would have an infrared > phototransistor looking at the IR output, buffering it, and driving > box B. I have plenty of external power floating around so pull-ups > and so on are not a problem. A operates in a polled mode, so I > don't have to worry about it wanting to talk at arbitrary times. > If I have to, I can turn on the wire serial port, talk to A, listen, > turn off the wire serial, turn on the IR, and talk to B. > > My question - is this possible? Has anyone done this or something > like this before? Any links/references to sample code? > I don't have any code available but you can control the serial I/O device on the HP48SX with the flag -33. When the flag is clear ( -33 CF ) then data is sent to and received from the serial port. When it is set ( -33 SF ) the data is sent to and reveived from the infared port. little too vague. When I say I want to solve cubic and quartic equations symbolically, I mean I want to be able to solve *any* cubic or quartic equation in terms of nth roots and elementary operations. For example, if I wanted to solve, say, X^3+2*X^2+4*X+5=0 it should return as one of its roots: cuberoot(-79/54 + sqrt(921)/18)-cubroot(79/54 + sqrt(921)/18)-2/3. Basically, such commands (let's call them CUBIC and QUARTIC) should function much like the built-in QUAD command. Even if I specify the coefficients as undetermined, e.g. say I wanted to solve A*X^4+B*X^3+C*X^2+D*X+E=0 (the general quartic) then all I would have to do is run QUARTIC to get the solutions. Notice that these symbolic solutions have virtually no use, so it would not make sense for them to be included in the CAS. However, knowing the vast amount of people who program the HP 49G for fun, I thought that maybe someone has already written such a routine (much like the one for the HP 48). > >These commands do not give the analytic solutions. They give approximate > >solutions when in approximate mode and nothing in exact mode. Hmmmm. . . I swear it did when I tried it a little while ago. And I know it > did about a year ago when we were doing stuff like this in school. Strange. . . > TW ~The enemy's gate is down. The built in commands will give analytic solutions only if the factorisation algorithm can factorize the polynomial. If not, then you can get only numeric solutions. Example: Try 'X^3-(a*b*c)*X^2+(a*b+a*c+b*c)*X-a*b*c=0' 'X' SOLVE . You get the solutions {X=a X=b X=c} because the HP49G can factorize the equation to '(X-a)*(X-b)*(X-c)'. But 'X^3+a*X^2+X-1=0' can't be solved. The HP49G doesn't use the formulas for the solutions of polynomials of cubic and quartic equations, but its general algorithm for factorisation. (?) One problem that arises - The QUAD command works a little different between the HP48s & the HP49. On the HP48s, QUAD will take any function as an input and derive a quadratic equation - basically a taylor series about 0 (zero). This is why the SYSEVALs were used in Polyn. On the HP49, (if I remeber right), the input equation must be a Quadratic equation. I have gone through Polyn, and have written several further developments on it. The last time I looked at it was with HP49 ROM 1.05. The problem with a full symbolic solution of a Cubic equation is determining which of the Cube roots to use - remember there are 3 of them for each of the two cube roots required in the formula. Only one set really works. Another thing is that the formula that you used requires to go into complex numbers to get two of the real root when there are 3 real roots (the complex part cancels out in the equation). Either that or use the trigonometric version of solving Cubic equations for such cases. In any case, there needs to be several IFTE commands which last time I checked was NOT automatically simplified. > > ... those who once gave so much for science, > > now give their best to terrorize and destroy. Those two sets of people do not intersect. Not a single one of these > thugs has ever done anything to advance science. It was not a culture > or ethnic group who devised those clever elements of mathematics so > many centuries ago; it was a handful of very smart *individuals*, who > *individually* deserve our praise and admiration. Likewise, it was > not a culture or ethnic group that attacked the USA on 9/11; it was a > handful of evil *individuals*, who *individually* deserve our scorn > and enmity. Then I should correct and say that it is sad to see so much terror coming out from places where so much good came from in the past. Though I also believe that individuals can give their best, when embedded in the appropriate society. So there is some correlation between general circumstances of living and individual work. > Although... that having been said... I've often wondered why the > entire Roman civilization never produced a single mathematician. > Musta been those horribile Roman numerals they used; it was less > painful to fight in the coliseum than do long division with Roman > numerals. ;-) I am having some difficulty connecting my computer to my HP48G through the IR port. I have a Dell Inspiron 7500 with Windows 98SE. I have set up my IR port through the bios to COM4 and IRQ3 and set it to perform as an SIR device. I have tried disabling the drivers in WIN98, but I still do not get any results. I have been using hyperterminal and the HP connectivity software. I have read several strings on this web-group, but I haven't gotten results by following their instructions. Time and again I have used these settings. CALC: Kermit IR Binary Checksum=3 COMP: Kermit 2400 bps checksum=3 parity=none stopbit=1 flowcontrol=hardware Do I need different software? What should my calculator settings be? > Does anyone know if the hp48gx will do diff. equations. eg. y'+5y=0 > ans. y=Ce^-5x The 48GX will not solve any differential equations out of the box. But you can get and install the lib Erable ( http://www.hpcalc.org/hp48/math/symbolic/erable.zip ) which will do this and much more. > I will use the next (It«s not very smart, but works): << {{}} EDITB DUP {{}} == IF THEN DROP END >> You can also use KEYEVAL: << your code 43.2 KEYEVAL your code >> The matrix writer will be activated and program execution suspended until you leave the matrix writer. Your code afterwards can check if you entered a matrix and do something with it. Does this help a little? I'm pretty sure it can only be done in sysRPL (Colin?). So if you'd still like to do it you'll need to learn that first. I do have a document I've just started discussing advanced programming for the 39/40 if you'd like a very early copy. What do i need to write ,compile and have fun with a sysRPL program for my hp40g.I've got a HPTools, hp39 entry points and I don't know what do do with them.Is there any tutorial,or idiot's manual anywhere in the net with simply example.Please help me. >What do i need to write ,compile and have fun with a sysRPL program >for my hp40g.I've got a HPTools, hp39 entry points and I don't know what do >do with them.Is there any tutorial,or idiot's manual anywhere in the net >with simply example.Please help me. (timwessman@yahoo.com) First I'd reccomend you get a userRPL tutorial which will help you understand more on how sysRPL works, and then start looking at the sysRPL tutorial. http://www.hpcalc.org/hp48/docs/programming/usrtutpd.zip Programming in UserRPL: This book by Eduardo M. Kalinowski is for the 48G, but since UserRPL is compatible between the 48G and the 49G, this is still the best online book to learn userRPL programming. UserRPL is the easiest programming language do on the calculator and is explained slightly in the calculatorâs manuals. A very good resource. (this will help you undestand the basics of how RPL works) http://www.hpcalc.org/hp48/docs/programming/stut_pdf.zip Programming in SysRPL: Another fine book by Eduardo, this is 249 pages, and covers almost everything anyone wants to know about sysRPL programming. SysRPL is much more powerful then userRPL, is very fast and a lot of fun to use. While it is 48G specific, almost all of the information is applicable to the 49G. (and also the 39/40) XCRUNCH allows to make substitutions numericly or symbolicly and also works with lists. Any useful input is allowed. Other inputs will just give an error message. The command is very versatile. Author: Luis Baptista FATCAL is the calendar which I like best. I always loved to use the mentioned libraries on my HP48 and would miss them on the HP49. So I tried to port them. I changed the unsupported entries to supported ones and then used Eduardo Kalinowski's great hpconv program to convert the libs to HP49 libraries. If you like those libraries you can download them for a while from www.karpstadt.de/xcrunch.zip (or fatcal.zip respectively) until Eric found time to update hpcalc.org. If you haven't used XCRUNCH before give it a try. Luis has made a very nice program, which is a good complement to the SUBST command and to the SOLVR (30 MENU or nicer with the CleanSolver from hpcalc). As Pivo pointed out: All credits go to the authors, but when the library gives problems its my fault. But I don't found any problems :) Great HP48/49 links: http://www.hpcalc.org http://move.to/hpkb to find *old* postings search: http://groups.google.com/advanced_group_search > I have opposite opinion. I think, the only reason, we think, calculators are still needed along with palmtops is because of the psychological inertia. Just like first cars were looking like horse drawn wagons. Palmtops became popular numbers wise and price wise only recently and the software did not yet caught up. If you would have powerfule CAS software inside cheapest Palm model, it would not only outrun any advanced graphing calculator, but it would also have more RAM, more screen real estate and rich interface. All that on top of many extra applications that do not even exist for graphing calculators. use BCD representation for floating point math, which is by definition of limited accuracy where it actually uses binary representation for integers, that suppose to be exact. Don't count for incoming C languge for APPS programming on TI89/92. It will not help. It uses for all floating point math either BCD built in entries inside TI calc, or external libraries of, guess what, BCD math. This is a joke. It changes 16 bit CPU into the 8 bit CPU, not much faster than HP Saturn. Unless you will write your own math libraries for binary floating point and library of functions just to translate native BCD floating point variables into your own binary format back and forth for exchange of data with calculator OS, you are not going to get any decent speed out of your TI. The choice of binary format is not limited to IEEE, because Motorola inside of your TI is of 68000 type, without built in math coprocessor. Therefore all your binary floating point math will require quite extensive, memory consuming library that does all of the floating point math and functions using integer math. Also do not exaggerate MC68000. It may be shines in comparison to Satrun and that only in binary math NOT USED by your TI, but it is oudated 16 bit, very slow 10 MHz CPU. Today palmtops are using full 32 bit CPU's at the speed of 30 to 150 MHz, and some of them with built in math coprocessor. That is many times faster, that even binary MC68000 is capable of crunching real numbers. Word processing with true type fonts compatible with MS Word, true and fast integrated with contact and calendar databases, GPS receiver and mapping software, voice recording, picture taking, IR remote data exchange etc. Just to mention a few :-) It is already outselling (at least in US) by many times high end calculators. That is exactly why HP is killing it's claculator division, but handheld HP division is shining like never before. Most of the typical software is already either built in into handhelds or available. You can get many calculator emulators for Windows CE devices. Even HP 48 emulators are available with the exception of good CAS. Good CAS is the only piece of software, that I haven't seen for handhelds yet. > I will make a program that when I press 1 the command for 1 go and then > end the program when I press 2 the command for 2 go's and then end. Here's a skeleton you can use: << @put display stuff here 0. WAIT IF 83.1 == THEN @commands to execute if [2] was pressed go here ELSE @commands to execute if any key @but [2] was pressed go here END >> If you want to provide more choices, or if you want to make sure that only the [1] and [2] keypresses can provoke command execution, you can prefer this scheme: << { << program for key 82. >> << program for key 83. >> ... << program for key n >> } 0. DO DROP { 82. 83. ... n } DO UNTIL KEY END UNTIL POS DUP END GET EVAL >> > << CLLCD > View Graf 1 1 > DISP View Graf 2 2 > DISP > WHILE > DO > UNTIL .05 WAIT > KEY > IF 83 SAME > THEN GRAF1 GG2.COD > ELSE GRAF2 GG2.COD > END > > KEY gibt entweder 0, oder aber den Tastencode und 1 zur.9fck das Konstrukt sollte wohl etwa so lauten: << ...(Dein Display-Code)... DO UNTIL IF KEY THEN IF DUP 82 SAME THEN DROP GRAF1 1 ELSE IF 83 SAME THEN GRAF2 1 ELSE 0 END END ELSE 0 END END GG2.COD >> Wahrscheinlich geht es noch etwas eleganter, aber das obige Beispiel funktioniert auch. Die Schleife l.8auft solange, bis Du entweder die Zifferntaste '1' oder '2' gedr.9fckt hast. Syntax etwa wie folgt: DO .. UNTIL..END ist eine fu§gesteuerte Schleife. D.h. die Abbruchbedingung kommt zwischen UNTIL und END. WHILE..REPEAT..END ist eine kopfgesteuerte Schleife, d.h. Abbruchbedingung zwischen WHILE und REPEAT. > I won't to write a program on my HP48 but the HP 48 make error. > The error is behind the else Command. > I will make a program that when I press 1 the command for 1 go and then > end the program when I press 2 the command for 2 go's and then end. > > > Now the program > Where is the error ??? > > << CLLCD > View Graf 1 1 > DISP View Graf 2 2 > DISP > WHILE > DO > UNTIL .05 WAIT > KEY > IF 83 SAME > THEN GRAF1 GG2.COD > ELSE GRAF2 GG2.COD > END > > > > > Good by Mike > > mike.heuer@fh-wolfenbuette.de > ==== das Konstrukt von David ist noch eleganter. Lass Dich nicht durch den Punkt hinter der Null irritieren, das ist nur auf dem 49G von Bedeutung. Ab dem '@' Zeichen ist die restliche Zeile Kommentar. Den brauchst Du also nicht mit einzutippen, denn er verschwindet dann sowieso;-) Raymond schrieb im Newsbeitrag The right syntax would be: WHILE test REPEAT code to be repeated END and DO code to be repeated UNTIL test END In your program there are two ENDs missing, one for WHILE and one for DO. If I understood you right, then the following program would do what you want: << CLLCD View Graf 1 1 DISP View Graf 2 2 DISP 0 WAIT IF 83.1 SAME THEN GRAF1 GG2.COD ELSE GRAF2 GG2.COD END >> No need to use loops here, as 0 WAIT will suspend program execution until you press a key and return the key code to the stack. P.S. The decimal part means: 1 -> Not shifted 2 -> Left Shifted 3 -> Right shifted 4 -> Alpha shifted 5 -> Alpha left shifted 6 -> Alpha right shifted Done. > BTW could you review some of my 2 previous posts? about the message handler > and minifont? Yes, but I do not know anything about the messagehandlers in inform boxes. > Is it possible to use minifont on a inputform? > Using System rpl I do not understand what you mean? When you apply labels on an input form, you do only use the minifont. >thanks, I've got the INTVX working. Where is this PARTFRAC? PARTFRAC is in the ALG menu. It has been there since the very beginning (at least I think). Basically when you get an answer that looks like (expr1)+(expr2)+...(expr n) all over x or something else, it separates each expression on the top and simplifys it. Then instead of all you expressions being over one thing, they are separate and often that looks much more like what people want. >the new ROM. Also how do you invoke the CASCFG command when it is on the >stack. Do you place some info in the () ? No. Just (). CASCFG isn't a command that you should run too often. What it does it return all of your CAS flags back to thier original setting. It should only be run if a problem isn't working, that you know should be working because it works for others. 98% of the time you don't need to execute this command as it will work correctly. That other 2% there is a flag that makes it so the problem won't solve, and you can't figure out which one it is. you really should also start switching to RPN as soon as possible it will really help you out as everything will become much easier. I found PARTFRAC in the arith menu. I have a hp48gx so I'm used to using RPN. What i miss using on the 49g is the menu's lining up above the function keys. I liked to use the math key alot on the 48 and I am used to having the menu already there w/o having to re-key in the menu choices. Anyway I downloaded all the info for the ROM updates but what is this 49g emulator thing anyway? I see two types of updates here so I'm not sure which to choose. larry I've just finished a statistics aplet for the 39/40 that basically adds all the commands the TI-83 has and should have been included in the 39/40. All i have left is the interface to finish to allow easier access. . . me at timwessman@yahoo.com. it is very stable but I can't guarentee it won't screw something up. It has basic documentation to get you started, but that isn't finished yet. Oh, and there is also a 49 version as it was programmed almost exclusively on that. . . To my surprise, when I upgraded to 1.19.6, HP49 is no longer capable to integrate: 1/(1+E*COS(X))^2 where E is constant (eccentricity of conical section). This function was integrated symbolically prior to the upgrade altough it's outcome required some complex manipulations for values of E > 1 or values of E < 1 to get real function. As a matter of fact identical loss of fuctionality happen to TI89/92 after it's OS was upgraded to version 2.05 which was also no longer capable to integrate mentioned function. Both calculators seem stuck on this function in the infinite loop. I gave up after 2 hours of running on both machines. HP49 used to integrate this function in a relatively short time prior to the upgrade and altough it returned complex answer one could EVAL it to the real real function after some equation algebraic manipulation. Also both calculators are capable to integrate this function, when E is actually given a nonzero, positive numerical value. TI89/92 still integrates first power of this function: 1/(1+E*COS(X)) where HP49 does not. It seems, that similar bug - stuck in infinite loop, is the cause. But in this case I don't know if it could do it prior to the upgrade. The function in the form of 1/(1+E*COS(X)) describes widely used curves - conical sections (positive value of eccentricity E) in polar coordinate system. The 1/(1+E*COS(X)) integral can be used to calculate area of the pie section where conical curve is the boudary of the pie. The 1/(1+E*COS(X))^2 integral can be used to calculate satellite fly time for the part of the orbit within pie using Kepler laws of orbital motion. > Arrow past the second ' and press ENTRY and you'll see ALG go off. Clever trick. I suppose it's not documented anywhere, right? > As for useless buttons, I vote for HIST as the most useless button > on any HP calculator to date. I use it purely as a spare key for > temporary USER mode assignments. HIST is useful to retrieve stuff from the stack when you're using the MatrixWriter... when manipulating the stack I find pressing the Up Arrow key way more intuitive! >> As for useless buttons, I vote for HIST as the most useless button >> on any HP calculator to date. > >How would you echo anything from the stack, without the HIST key? I use it >alot. I was of the first opinion for a long time. That was until I realized that pushing the HIST while in an editor allows one to pull things from the stack into the editor. I then set up my HIST so while no editor is active, it functions as CMD, and while an editor is active it functions as the HIST key. Well, there is always a clock, just not a very accurate one. My timing program goes too fast (i.e., shows more time than the calculation actually takes) by about 1/2 second or so every minute. It's the best we can do without creating and interfacing our own clock. > > of LongFloat49 !!!!!!! > > Well, I have to agree w/ JYA on this - the interest seems to be modest, so > it's not a high priority to implement. When I've finished NSOLVE for > Numeric49, and then SymbToolz 2.0, I may give it a shot again. I'm sure we > can integrate it if needed. That's ok - I'll just wait patiently... * > Personally, I find auto simplification a complete waste of time (to use > Monty Pythons words :-), so I wouldn't endorse it as an integral part of the > ROM. I only create it on suggestion from a couple of TI guys > - and also so > the TIs can't hold a single thing to the HP49G ;-) There will *always* be something that one calculator has but the other doesn't project. I don't know how far he is now (I must have an alpha test version around that does basic arithmetic, sqrt, inv, pi, however no exp/ln or trig yet), but I'm sure he'll produce. What do we need next (besides INTEGERASSUME and units in the EQW of course :-)? > Yes, ok. I must be tired now :-) > > > what the flag COMMANDS you to do!!! > > You mean to use INV if the flag is set, and my program if clear? In many > cases that would be a good approach, but I'm afraid not many people know of > the existence of that flag? I could, fairly fast performance wise, check > instead to use the best algorithm, so the user didn't have to think ;-) Ah! The TiBORG approach! This time I have to assimilate -er- agree... [T9 on 49] > > is it doable? > Yes! > AND probably Wolfgang Rautenberg could give you and example He won't do it anyway: I guess he just plugs his 49 into the cell phone to write messages :) Have you noticed? HP have removed the calculator history from thecalculators section in their website. It seems that the only inventions worth their attention are PCs... I always thought that brand image was important for marketing people, and that having users proud of owning your products are a marketing dream... it seems I am wrong. > I know that. Unfortunately it was turned on when it happened. > > > > I think I will let it dry for a couple of days more, and then try again. > If that doesn't work I will take a shower with it. I would rather give some alcohol to the poor fellow... AND rhis was a serious proposition!! C2H5OH & other alcohols may was the water away and they evaporate rather quickly My best results in situations like this is to remove the batteries, rinse under clean tap water, and leave it under the air stream of a fan for 24 hours. Good luck! No, I only use server mode when talking to my HP specific programs. I have done a lot of further testing and diagnostics. My serial ports all fail a series of diagnostic tests including a loopback test. I do not think that it is a hardware problem. I think I have some sort of software problem which prohibits proper communication to the serial ports. I am stuck right now trying to figure out what to do next. I am consulting with some of my computer engineering friends to help, trying to help... - a www server where one can find hp-48 related software, blabla... : have a look at www.hpcalc.org - a www server which can run on the hp-48, letting the hp48 be able to host a homepage ? : we'll, it's being done : have a look at http://youpibouh.thefreecat.org/info/prog/48inet.html and at http://www.hp-sources.com/navigator for the client part. Only tcp/ip stack is done, but writing a HTTP server shouldn't be so hard ;-) There haven't been any news since some time because I'm rewriting the ugly software. > Sorry, that's a bad link. You get the idea, though. I can't seem to find > the new beta rom directly from HP. I wonder if it's a temporary thing, or > if I'm not looking in the right place. Why don't you download it from JYA's page?? http://www.epita.fr/~avenar_j/hp/49.html I have. I was more curious if this was a change in philosophy within HP. Why would they not supply 1.19-6? And where has the software development kit gone? Are they scraping off all beta software? > No command on the HP49G simplifies as the TI92 does. Not matrix inversion, > not integration, and not any form of derivative calculation. You cannot > compare these things, as the design of the two machines differ greatly. Yes, but I don't consider X^(X-1)*X simplified :-) > You do see why some commands on the HP49G *internally* have to simplify in > some way? You also understand that there is no universal form to simplify > into? I consider X^X as universal form of simplified X^(X-1)*X. :-) I hope you do see that :-) I simply stated that simplification performed by TI adds extra time to the execution of the commands. HP skips that step in algebraic manipulation making timing comparison unfairly favoring HP. As far as simplification goes, I consider X^X as a simplified form of X^(X-1)*X You have the right hold different opinion :-) > > You do see why some commands on the HP49G *internally* have to simplify in > > some way? You also understand that there is no universal form to simplify > > into? > > I consider X^X as universal form of simplified X^(X-1)*X. :-) > I hope you do see that :-) > I simply stated that simplification performed by TI adds extra time to > the execution of the commands. HP skips that step in algebraic manipulation > making timing comparison unfairly favoring HP. Why? It's the time it takes for you to get a result that counts. I do seldom favor the TI output, and often you need to make many further calculations on intermidiate answers, thus rendering intermidiate simplification an unnecessary CPU burden. How do you want an expression formatted? The TI92+ does these simplifications: '(X+2)^12-1' -> 'X^12+24*X^11+264*X^10+1760*X^9+7920*X^8+25344*X^7+59136*X^6+101376*X^5+1267 20*X^4+112640*X^3+67584*X^2+24576*X+4095' 'LN(A)-LN(B)' -> 'LN(A)-LN(B)' '((X-3*i)*(X-2)^2)/(X-i)*3' -> '3*(X-2)^2*(X^2+3)/(X^2+1)-6*X*(X-2)^2/(X^2+1)*i' Are these simplifications what you need? They are definetely not what I need. > > I consider X^X as universal form of simplified X^(X-1)*X. :-) > > I hope you do see that :-) What about '1/XROOT(3,X)' or '1/X^(1/3)' or 'X^(-1/3)'? There are many > situation that do not have a universally most simple form. It depends on > what your purposes with the expression is. You gave a very poor example. All three representations are equivalent and as far as anybody reasonable is concerned, they are simplified. I might like or dislike some of the forms, but in general they represent exactly the same formula expressed just with different NOTATION. Purely for the reasons of extremely poor HP screen real estate, probably you should choose the last one X^(-1/3) as the one that requires minimum ASCII characters and assuming fixed width font allows maximum information to be shown on the screen simultaneously. In this case more (on the screen) is good :-) What I gave you was an example of HP not simplifying equation to truly simpler form. To paraphrase your example to be equivalent to my example is to present your example in the form of: sqrt(2/7*X+5/7*X)/X^(5/6) After spending some time with the formula above you will find out, that in SIMPLIFIED form you could be written as X^(-1/3) or the other two forms of NOTATION that you gave as an example :-) What TI does with d(X^X,X) is an answer in the form of: (ln(X)+1)*X^X I would probably prefer the form of X^X + X^X*ln(X) but I consider both form to be equivalent although I might like to have a choice and we can discuss those. The HP answer of representing X^X in the form of X^(X-1)*X is not a alternative simplified version unless you are hopeless HP die hard fan :-) In this simple example it is a form that most of us can live with, but in much more complicated examples lack of simplification in HP produces unreadable extremely long formulas that require extensive algebraic manipulations and consume significant amount of time. TI skips that frustrating step doing it automatically for the user. By the way that was exactly my point. When people compare timing between HP and TI, they tend to forget about that important step that TI always takes, and which requires extra time. I did not intended to discuss advantages or disadvantages of simplification. As a professional user I don't care for step by step long formulas that are lacking obvious automatic simplifications. I can see some advantage of it for mathematically challenged students, who might need some clue how after some manipulation the final simplified formula was developed, but it is completely uninteresting for professionals. Advanced users, and students interesting in math should understand the mathematical process behind and recreate it if it's needed manually. What is most of the time interesting should be the answer in the most readable for the human form. If you consder X^X^(X-1)*X mathematically equivalent to the X^X then the whole idea of algebraic calculator makes no sense, because d(X^X,X) is mathematically equivalent to X^X(ln(X)+1) so why bother and spend so much time and effort simplifying mathematical notation of d(X^X,X) to the simplified form of X^X(ln(X)+1) ??? :-) (Rethoretical question :-)) If you consider X^(X-1)*X as readable as X^X, then definitely you should not work in the department of Research of software - user interface ergonomics '1/XROOT(3,X)' or '1/X^(1/3)' or 'X^(-1/3)' > I might like or dislike some of the forms, but in general they represent > exactly the same formula expressed just with different NOTATION. In the calcs perspective, it's not merely a question of notation, but of form. Internally the three forms are represented by these symbolics: SYMBOLIC ZINT 1 ZINT 3 ID X xXROOT x/ ; or SYMBOLIC ZINT 1 ID X ZINT 1 ZINT 3 x/ x^ x/ ; or SYMBOLIC ID X ZINT -1 ZINT 3 x/ x^ ; The HP49G has to manipulate either one of the expressions to get to any of the other - it's not a matter of notation for it, which is why you'll have to define a standard form. This form can only be one of the above - not all three. > Purely for > the reasons of extremely poor HP screen real estate, probably you should > choose the last one X^(-1/3) as the one that requires minimum ASCII characters > and assuming fixed width font allows maximum information to be shown on the > screen simultaneously. Actually, '1/XROOT(3,X)' uses up less pixels in pretty print than 'X^(-1/3)' :-) > sqrt(2/7*X+5/7*X)/X^(5/6) > > After spending some time with the formula above you will find out, that > in SIMPLIFIED form you could be written as X^(-1/3) If you do LIN EVAL EXP2POW on the above, you get '1/XROOT(3,X)'. This takes 2,8 seconds. Sometimes, e.g. when dealing with trigonometric expressions, you'd have to invoke a different set of commands. All in all, simplifying in between calculations uses up a huge amount of time, and it can easily result in an unwanted form. There is no need for this on the '49. If anyone needs auto simplification, they need a TI89 with all the limitations that bring. When I use the '49 (usually with polynomial fractions) I often do maybe 20-30 calculations on the stack, before I have the final result. While doing those, I do EVAL maybe 5 times here and there, just to collect like terms. When I'm done, I decide which form I want the result in - these forms depend on which variable to order the polynomial in, wheather I want a real or complex fraction expansion aso. I do not want to spend an additional minute while calculating, just so that the '49 can simplify into some intermidiate forms that I don't see anyway, and into some final answer that I probably will change the form of anyway. > What TI does with d(X^X,X) is an answer in the form of: > > (ln(X)+1)*X^X > [...] > The HP answer of representing X^X in the form of X^(X-1)*X > is not a alternative simplified version If this is the final result, it's very easy to see that you'll have to do EVAL EXP2POW to get what you want. I don't find this a problem. > In this simple example it is a form that most of us can live with, but > in much more complicated examples lack of simplification in HP produces > unreadable extremely long formulas that require extensive algebraic manipulations > and consume significant amount of time. The calc can't know which form I want the answer in. What do we need the answer for? Usually I need very few things from a symbolic calculation on the '49. 1. I want to check a couple of numeric values (may be filter coefficients), and for this the most compact symbolic representation is not important - the result is the same. 2. I want to make a table of, say, quantization effects. This is again a numeric result I need - it's probably a set of inequalities with numeric limits. 3. I want to check if two expressions are equal. This can be done with minus and EVAL. Pretty simple. 4. I want to define an algorithm - for this I may want to find the most compact expression, but how do we define compact? Depending on the processor/DSP this algorithm will run on, I may want to optimize for fewest divisions, fewest variables (slow recalls?), shortest expression (few bytes available?). I may even want to optimize for a combination, while keeping an intermidiate result avaiable for another calculation. This is why I *never* is able to use the answer from a TI92+. > TI skips that frustrating step For me it just builds up frustration :-) > I did not > intended to discuss advantages or disadvantages of simplification. But we will have to discuss that, if you want to take it into consideration. You say simplification is a good thing hence we need to give the TIs credit for that, but I say it's a bad thing - should we then give the HP credit for not simplifying things? Should we add the time it takes to make the TI get to the answer of the '49? Sometimes that is actually not possible, which just adds to the frustration. > I can see some advantage of it > for mathematically challenged students, who might need some clue how after > some manipulation the final simplified formula was developed Again you say *the* simplified formula. The is no simplified formula. I'll give you an example: We start out with this bivariate expression, formerly derived by a matrix diagonalization, row reduction and derterminant extraction (for example): '3*A^2*X+6*A*X-3*X-2*A^2-4*A-1' I know that I have 'A' stored in very slow flash RAM and 'X' stored in fast SRAM. Additionally I have '3*X-2' in SRAM as well from a prior calculation in my DSP. What would I do with a TI92+? Hmm, if I input the given expression, it gives me '15*X^3+A^2*X^2+(10*A^2+3*A-3)*X/3-8*A^2/3+4*A-10' This is clearly a polynomial in 'X', but then I can't use '3*X-2' without some ugly factorizations. Since I want the presence of 'A' minimized, and want to use '3*X-2' I do this on the '49: 'X-2/3=Y' SUBST EVAL and it gives me 'Y*A^2+2*Y*A-(Y+3)' Now this is probably very near the fastest implementation I can get in my DSP, but the original simplified expression on the TI92+ didn't show this at all. > What is most of the time interesting > should be the answer in the most readable for the human form. That is not always true. A simple point of discussion could be the variable in which to simplify? > If you consider X^(X-1)*X as readable as X^X, then definitely you should > not work in the department of Research of software - user interface ergonomics :-) It may not be readability that decides which form is best. It may be a whole host of different factors, and when you use a calculator for real world problems, they don't look nice and cancel out. The TIs are maybe best for school, but they do not necessarily do the best ====