HP Forums

Full Version: HP Prime documentation
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Is there any good source for the commands and functions of the HP Prime, including programming keywords and syntax? Or is the Prime just a toy due to lack of documentation?

I have been programming HP's for over 30 years (41C, 48GX, 50G) and I had high hopes for the Prime, but the only results I seem to get are syntax errors.

The same old story ...

This should be plenty of information, no?:

http://www.hpcalc.org/prime/docs/

TomC

There is also the built in help.

Regards Michael Carey

Hallo,

i think, most of the questions in this forum about the Prime are due to insufficient documentation.

Ludger

Both the user guide and the internal help function is very incomplete. I have been trying to refer to some older manuals and using trial and error to get the syntax correct...This is how hackers and hobbyists operate; but is in no way satisfactory for a commercial device to be used by professionals.

Does anyone know the implementation and syntax for a DDAYS or ATAN2 function for the Prime? I am currently brute forcing ATAN through 360* but I would like a cleaner implementation.

There are no date/time functions at the moment. Nor is there an ATAN2 type function.

Did I misunderstand something here in what you are asking?

That is a good answer, but dang!

I was trying to implement some navigation calculations involving spherical navigation and orbital mechanics that will now require more brute force then otherwise.

Try these lines of code:

//------------------------------------------
// Calcul du nombre de jours écoulés entre
// deux dates calendaires
EXPORT DDAYS(D1,D2)
BEGIN
LOCAL a1,m1,j1,a2,m2,j2,z1,z2;
// YYYY.MMDD
a1:=IP(D1); // YYYY
m1:=IP(FP(D1)*100); // MM
j1:=IP(FP(FP(D1)*100)*100); // DD
// YYYY.MMDD
a2:=IP(D2); // YYYY
m2:=IP(FP(D2)*100); // MM
j2:=IP(FP(FP(D2)*100)*100); // DD
IF m1<3 THEN m1:=m1+12; a1:=a1-1;
END;
IF D1<=1582.1004 THEN
B:=IP(-2+(a1+4716)/4-1179);
ELSE
B:=IP(a1/400-a1/100+a1/4);
END;
z1:=365*a1-679004+B+2400000.5;
z1:=z1+IP(30.6001*(m1+1))+j1+.5;
IF m2<3 THEN m2:=m2+12; a2:=a2-1;
END;
IF D2<=1582.1004 THEN
B:=IP(-2+(a2+4716)/4-1179);
ELSE
B:=IP(a2/400-a2/100+a2/4);
END;
z2:=365*a2-679004+B+2400000.5;
z2:=z2+IP(30.6001*(m2+1))+j2+.5;
RETURN ABS(z2-z1);
END;
//------------------------------------------
input parameters: 2 dates in HP Prime format

for example:

D1= 1970.0609 (1970 june the ninth)
D2=2013.1124 (today)

gives 15874 days.

Or you can read this:

http://edspi31415.blogspot.fr/2013/11/hp-prime-programming-tutorial-6.html

Regards,

Damien

Edited: 24 Nov 2013, 6:20 p.m.

Thank-you Damien.

This afternoon I also wrote a J2000 day program that outputs to a user-variable JD2K

EXPORT JDATE2K()

BEGIN

LOCAL JDY, JDM, JDD;

LOCAL LDY, LDM, LDD, LD2K;

LOCAL TDY, TDM, TDD, TD2K;


//allow for default to system date

Date()&#9654;TD2K;

IP(TD2K)&#9654;TDY;

((TD2K-TDY)*100)&#9654;TD2K;

IP(TD2K)&#9654;TDM;

IP((TD2K-TDM)*100)&#9654;TDD;


//input desired date or default to system date

Input(LDY, "Year", "Year = (yyyy)", "Enter Year", TDY);

Input(LDM, "Month", "Month = (mm)", "Enter Month", TDM);

Input(LDD, "Day", "Day = (dd)", "Enter Day", TDD);


//calculate J2000 day

//easier to reference 3/1/2000 and add 59 days for leap year handling

LDD&#9654;JDD;

(LDM+9) MOD 12&#9654;JDM;

(LDY-2000) - IP(JDM/10)&#9654;JDY; //reference to 2000AD

JDY*365+IP(JDY/4)-IP(JDY/100)+IP(JDY/400)+IP(((JDM*306)+5)/10)+(JDD+59)&#9654;JD2K;


END;

Although it looks like the web page does not like unicode, the sto function is showing up as &#9654

Quote:
This is how hackers and hobbyists operate; but is in no way satisfactory for a commercial device to be used by professionals.


Since it's aimed at students and not professionals, it's not as big a problem as we think.