We can build a better calculator



#2

Despite our shared nostalgia for great HP past products, I believe this community can cooperate to build a better calculator. Using an open community approach (similar to the large Linux community), we could develop modern software to run on modern hardware, and wind up with something much nicer than the HP 49gx+.

I've done some thinking about this, and have prepared a (rather lengthy, richly illustrated) document describing the idea. You can read about it in:

http://home.comcast.net/~john.shelton1/ICP/ICP_1.0.pdf (3mb Acrobat file)

Is there interest in forming such a community? I call it the Ideal Calculator Project.


#3

I like your idea John. We can certainly build emulators as Windows application to test the calculator. I developed something similar (that I am selling on eBay) that builds on the HP41C and adds many many commands that include matrix math, graphics, SOLVER, ROOT finder, and so on.

Getting to teh hardware is teh tricky part. I get the impression (and I may be very wrong) that the HP49G was the result of HP enthusiasts that smehow convinced HP to build a machine. Unfortunately, the HP49G was not the big hit HP expected.

Namir


#4

What would be really good is to have full access to the 49g+ and have hp support to develop an open community calc that could even come in different flavours:
High Shool, University and higher, games, development, and even algebric only...
I agree that the hardware part would certainly be too expensive for a community project... but reusing the very capable 49g+ HW would be good.

Arnaud

#5

When I first read the subject of this e-mail, I thought of a response automatically. About a year ago (maybe 1.5 years) there was a very large discussion about building a better calculator. It was eventually dismissed because that was all it was: a discussion. There were a bunch of people all arguing over LED or LCD; Scientific or Graphing, and so on.

I read the first 19 pages of your pdf file, and I find your idea to be very fesible. It sounds like a well planned-out, well thought-through, feasible idea. (that was redundant)
You have my support and access to any resources I might be able to give you. These include the eye/opinion of a child/high school student, my skills in Java programming, MasterCAM and Inventor part design, access (through me) to the Computer Numerically Controlled (CNC) Machining centers at my school (to make prototype keyboards, cases, etc) and some other stuff that I can't think of.

Let me know what I can do to help you out.
-Ben Salinas
Science Academy of South Texas
McAllen, TX

#6

need that to come out on DVD.... boxed set

:o)

still waiting for 'time tunnel'

#7

i like your idea a lot, but im unconvinced by java. the problem is that
java is sponge in the way that would otherwise give you 5x performance.
in the cruel world of cost reduction, you will need that 5x. right now,
are there any dominant java chips. what i am seeing is an ever improving
sequence of general chips that can made to run j2me.

whether or not you want to use java, your base arithmetic will need to
be native (or almost). i have tried the idea of combining native
floating point types for improved precision. currently, im using two
doubles to make my base precision "real". this gives me 30 decimal digits
and +-300 exponents. i get to use native ieee double implementations
including hw if present. you could do the same trick in java and it would
beat the pants of any in-java decimal float arithmetic.

from a software perspective, a big challenge is going to be the
symbolic math. in order for the icp to really stand out, this will have
to be good. ti cheated with the 92/89 by licensing derive and porting it
to the 68k. its still impressive for a calculator and the icp will need
to beat it. are there any open systems out there to learn from. i see
this capability of the icp as pivotal, and therefore the starting point.
what can be done?


#8

If I understood your message correctly, you are asking whether the ICP is to design a new language (so to speak) for the calculator (such as the RPL is for HP?) or use the already existing Java Micro Edition. (Please, correct me if I am wrong)

Now, I have very little experience with electronics (I took a Digital Electronics course, but the most we did mathematically was make an 8 bit binary adder/subtractor), so I might not know what I am talking about, but would it be simpler to use the J2ME for the more complex features, such as the vectors and matrices. I was looking over the J2ME API Specifications earlier today, and although there is considerably fewer classes than in J2SE, it still includes what I find to be the most useful classes for this type of operation (java.util.vector, simple 1 and 2 demensional arrays, the hash codes, the threads, etc)... Now if only it included BigDecimal, and BigInteger. Personally, I would think that it would be easier to build off of this language for the more complicated features and use the native programming, as suggested for the basic, faster features"


"i see this capability [symbolic math] of the icp as pivotal, and therefore the starting point. what can be done?"


We definitely will need a language chosen (or a processor) in order to anything more than theory work on this, right?

A few, somewhat confusing thoughts
-ben


#9

hi ben,

you are quite right. it would be nice to use java like j2me or even j2se. it could be the way to produce a prototype for the icp and to develop the algorithms. im not really suggesting another language, i was thinking that for performance reasons, the icp would run native code. what would be excellent is to prototype in java and then be able to compile it into a native binary. ie to run without jvm. where are we at with compiled java. i am not up to date with it and for what processors tools are available.

the symbolic front is more theoretical. its not something that can just be written like that. i am always really impressed by any symbolic ability because its so hard to do.
so im asking a bit more about the requirements and design issues for this aspect of the icp, as i think it in turn affects the other choices.

best wishes,


#10

Last night I started thinking about this synthetic math problem, and I think I have found the way to factor. This morning I only had a little time (I will have more time later), but I created a basic (very basic) Java Class to deal with Equations. Right now it can only input equations and print them out.

I know how I am going to find a common factor of a monomial within the polynomial, but haven't implemented it yet. I also know how I am going to find a pair of binomial factors. Right now though, I must leave so take a look at this... I will work on it some more later.

www.geocities.com/piguy31415926/Equation.java
www.geocities.com/piguy31415926/test.java

-Ben Salinas


*UPDATED* I rewrote the entire class, allowing for the use of multiple variables. I will probably restart again tomorrow. Note that I am only doing this to familiarize myself with programming and editing equations with coefficients and variables (no values)

Edited: 26 Jan 2004, 12:09 a.m.


#11

there is some stuff here on polynomial factorisation over Z:
Modern Computer Algebra
by Joachim von zur Gathen (Author), Jürgen Gerhard (Author)

chapter 15.


#12

Well, I will have that book tomorrow evening (they have it at the local university library, where my dad works), and am working on getting a hold of an e-book copy of "Computer Algebra Systems: A Practical Guide" (http://www.math.unm.edu/~wester/cas/book/contents.html) They have it at NetLibrary, but I can't make an account until I get to school tomorrow.

From there, I guess I will start reading and learn the theory of making a CAS (easier said than done... much easier said)

Untill next time, whenever that may be,

-Ben


#13

A possible platform: http://www.gumstix.org/

--
ee

#14

I love your idea, John, although I'm not sure Java is the right decision at this point of the project. There may be constraints/reasons to favour something else yet unknown/not discussed. And Java in general has its shortcommings, too. Another point I'd like to suggest is, not to limit physical I/O to the ones you suggested (USB/Ethernet, Printer, etc.). One of the features, that made the HP-41 so popular, was the Interface Loop with its many peripheral extensions. You may argue that this is possible with USB/Ethernet, too. BUT (and this is a big but) the hardware-/software-overhead this means not only for the ICP itself but for the peripherals, too, is tremendous. If a discussion about the I/O-/hardwareplattform-topic is still possible I'd like to suggest e.g. to have a look into the new PSoCs (Programmble System on Chip) I've read about in the January 2004 -issue (if I remeber it right) of Dr. Dobbs Journal.

Anyway, your idea is fascinating and I'd like to be part of the developing community if this project will come into existance. So please keep me up to date. Thank you very much in advance.

#15

Well, I got the Modern Computer Algebra book that hugh recommended and I like it a lot. I have read the first 4 chapters. It occured to me that I could use this as an independent study class at school (I mean, I am only reading a graduate level textbook), so I wrote up a proposal for the class.

Basically, I proposed that for every chapter, I would write a summary so that I could use it for reference in the future. Tonight I also wrote up the first summary on Chapter 2 (Chapter 1 is pretty much an introduction to mathematics) Chapter 2 covers adding, subtracting, multiplying, and remainder division for polynomials. I have my summary posted up on my website at www.studystuff.tk

Soon I am going to re-rewrite my Java equation class and start adding in classes for addition, multiplication, subtraction, division, and various other functions.

I will keep you posted

-Ben Salinas

www.studystuff.tk

#16

I thought I was the only nerd remapping a pioneer keyboard to squeeze in more functionality. I'm a computer guy, but not a programmer, so weight my opinion accordingly. Java is known throughout the biz, but since MS and Sun had the 'dissagreement' regarding licensure, i'd stay miles away from running it native in a product. Developing in Java, ok, but porting it into rom? I love the idea of redesigning the functionality of a calculator, while keeping with off the shelf construction. The ends of the design seem like the easy part, I mean the core logic, and the external design. Stick a ZiLOG inside a Pioneer, right? Of course ROM development is the tough part. I especially admire the attention to simplicity and usability. Skip the leather bound edition for now. Make a working simulator, the rest will follow. Painting a house is easy, plumbing is the real work.

I want a 'mr. potato head' calc where i put the buttons where I want them! ; )

ned


Possibly Related Threads…
Thread Author Replies Views Last Post
  WP 34S New Build with older GCC Marcus von Cube, Germany 4 1,903 06-22-2013, 05:12 PM
Last Post: Marcus von Cube, Germany
  HP-15C Simulator / Release 3.2.00, Build 5319 Torsten 10 2,934 05-11-2013, 05:19 PM
Last Post: Thomas Klemm
  Debug4X and "divide by zero" when attempting build Joe Veazey 3 1,476 11-25-2012, 08:45 PM
Last Post: Han
  they build their calculators like they build their words db (martinez, ca.) 22 5,432 10-30-2012, 05:57 AM
Last Post: Frank Boehm (Germany)
  [WP34s] Build error on linux 64bit Nobby K. 9 2,750 04-08-2012, 02:11 PM
Last Post: pascal_meheut
  WP34s V3 - Build Number recommended? Thomas Chrapkiewicz 27 6,890 01-28-2012, 01:22 PM
Last Post: Marcus von Cube, Germany
  WP34s build compiler David Griffith 19 4,557 01-06-2012, 08:49 AM
Last Post: Marcus von Cube, Germany
  Matrix functions on the WP 34s Build 1685: in a word "incredible" Gene Wright 78 16,587 10-06-2011, 09:16 AM
Last Post: Crawl
  WP34s: new build with Matrix functions? fhub 2 1,062 10-03-2011, 01:02 PM
Last Post: fhub
  WP-34S build problems on Linux Eric Smith 5 1,906 10-03-2011, 01:27 AM
Last Post: Marcus von Cube, Germany

Forum Jump: