Background for the real message:
The project: I recently decided to at least try to make a computer-based graphing calculator after tiring of TiLEm, VTI, etc. The feature list is: (1) Cover all the functions of the 83+ (2) Allow users to enter an equation, matrix, etc. as most natural for the platform (3) not require an image of a TI calc in order to work
#2 will eventually include an area for pen input on Tablet PC (If I'm the only one who wants that, so be it), but will start as TI-83+-like syntax straight from keyboard (some exceptions needed). #1 would include program support, definitely *.8xp, I'll comment about that in a bit.
Currently, I have it laid out so that the backend will be in Python, the UI in either wxPython or MSVC++ 6. The UI would pass a raw string to the backend, the backend would solve it. The backend would handle programs, variables, mode, etc. as well.
Program support will be fully compatible with TI-83+ (except for speed). The program editor would be based on raw text, definitely would have .8** support (yes, I saw the thread), likely with alignment and 'autocolon' support (haven't isssued this too much thought yet, and yes, I saw SourceCoder). Automatically resetting the mode to what the user had set before the program executed has been recommended to me, and I plan on including it. Furthermore, I have been considering a 'sandbox' approach, preventing a program from overriding a variable set by the user.
Now, the REAL message:
I am currently working on getting pseudocode for implementing the math funcs (don't bother reinventing the wheel), and don't really have a clue what the 'knowledgebases' are. Does anyone have a recommendation on where to look?
(second, what does a sample of everyone think about the project?)
proegssilb wrote:
(3) not require an image of a TI calc in order to work
If you are using code from the TIOS, I don't think it's legal to do it that way (although it would be much more convienient).
This sounds like an interesting project. I'm interested in seeing what you can come up with. Good luck, it sounds great so far
good project. Avoid MSVC++ like the plague. It will drive you mad (or at least it drove me mad). MS tried to re-invent too much, including using proprietary strings for EVERYTHING (which are heavily crippled replacements for the standard C++ strings - you can't even convert the dang things easily) Use wxPython (or the built in TKinter) so that us alt-os folks get some lovin too
As for the math functions, look into the python modules math and cmath - that should provide a bulk of what you need.
Quote:
If you are using code from the TIOS, I don't think it's legal to do it that way
Probably should have been more specific on that detail... The way I currently have the app laid out, there'd be (a) no need for TIOS, (b) no want for TIOS. The program would be designed around the fact that it's being run on a computer.
Quote:
Avoid MSVC++ like the plague. It will drive you mad...
I'll bear that in mind. I was only considering in cases where it is near-impossible to get what I want working otherwise...
Quote:
Use wxPython (or the built in TKinter) so that us alt-os folks get some lovin too
Go LINUX! With the development versions, the whole app will be solid python. wxPython, since I never quite managed to get TKinter to work exactly as I wanted it to.
addition:
Quote:
As for the math functions, look into the python modules math and cmath - that should provide a bulk of what you need.
If I could get away with using them... Here's the kicker:
Code:
>>> .1
0.10000000000000001
>>> round(.3-.2,14)
0.10000000000000001
>>> round(.1,14)
0.10000000000000001
If we add dmath, a very short list of functions based purely on Decimal (sin, cos, pi, e**x), then we get:
Code:
>>> round(math.sin(math.pi), 14)
0.0
>>> math.sin(math.pi)
1.2246467991473532e-16
>>> dmath.sin(dmath.pi())
Decimal("2.827895053522009972838319887E-28")
>>> math.sin(dmath.pi())
1.2246467991473532e-16
>>> dmath.sin(math.pi)
3.4586691774470584e-16
>>> round(dmath.sin(math.pi), 14)
0.0
It sounds like you want to make something that acts like a calc but isn't really a calculator? Correct?
If I understand correctly, I think you'd be better off to make it an 89 instead of an 83/84.
I'd probably even use it if you made it as an 89.
3d graphing ... definite and symbolic integrals ... definitely.
Yeah, that's what I'm going for.
Suicide_Guy wrote:
If I understand correctly, I think you'd be better off to make it an 89 instead of an 83/84.
I'd probably even use it if you made it as an 89.
If someone e-mails me a list of extra functions, I'll look into it sometime after I get 83+ features working.
So this will be cross-platform? If you get this working, it's gonna be pretty sweet...
it will be (and why didn't I hear about some of these features in out talks?)
From what I understand (from one on one talks), the backend will at least be multi-platform, but the front end will be more XP Tablet PC, with the ability to make differnt ones for different OS
rivereye wrote:
From what I understand (from one on one talks), the backend will at least be multi-platform, but the front end will be more XP Tablet PC, with the ability to make differnt ones for different OS
That WAS the plan. I have to start somewhere reasonable, though. And besides, the UI's going to be QUITE modular; it wouldn't be unreasonable to have two options for the UI, or to start simple and make more complicated ones later.
I would definitely love if it was optimized for pen-based usage or at least had an option to turn on a pen-friendly interface, since I have a tablet.
KermMartian wrote:
I would definitely love if it was optimized for pen-based usage or at least had an option to turn on a pen-friendly interface, since I have a tablet.
The only trick is what OS you're running on the tablet. I only know about the M$ stuff, so when I make a TabletPC UI--if I ever figure out how to do the back end... I guess I'll have to start dissecting some builtins...--the TPC UI will be Windoze only (unless someone's got a better idea?)
Yeah, I'm running XP Pro / Tablet 2005, but I'm considering dualbooting *Nix and optimizing it with tablet drivers.
OK, working on an alpha release... Soon as I get parser/executer and GUI done, I should have it available
The alpha will feature ln/log(x)/log(x,b), all trig functions (including acsch()), and almost all the functions under the MATH menus on a TI-83+/TI-84+
Anything else can be marked high-priority for the second alpha.
The alpha should also clarify where this project is going so far as approach/GUI is concerned.
I'm going to assume it also does the fourfunction operations? How about operation priority?
KermMartian wrote:
I'm going to assume it also does the fourfunction operations? How about operation priority?
Thanks for the reminder.
Four functions inlcuded. Order of operations should be like on the 83+:
Do the following groups, left to right:
- Anything with parentheses, e.g. log(), x+b in (x+b)a
- suffix operators, e.g. !, squared operator
- nPr and nCr
- multiplication/division
- addition/subtraction
- Relational operators, e.g >=
- and operator
- or and xor operators
Very nice! I assume you used the documentation in the back of the manual as a guide. I can't wait to see this, perhaps ask for permission to port it to php to make SC2 and/or SAX a bit more powerful.
that would be cool, but I don't know what could be added to it. I can't wait for this (been waiting a long time actually).