EXC/ x<>Rn for stack efficiency
|
07-20-2022, 07:03 PM
Post: #44
|
|||
|
|||
RE: EXC/ x<>Rn for stack efficiency
This looks like an XY problem to me.
Here is a program to calculate the great circle distance between two points A and B on a sphere. Since no registers are used, the initial question X is not relevant. All you ever wanted is a solution for Y. Program This program works for most HP calculators: HP-25 Code: 01: 21 : x<->y HP-15C Code: 001 { 34 } x↔y HP-42S Code: 00 { 24-Byte Prgm } Example This is the example provided for the SR-56: Point A: \(33^\circ 54.5'\) N, \(94^\circ 56.2'\) W Point B: \(33^\circ 59.6'\) S, \(151^\circ 25.6'\) E DEG 33.5430 →HR 33.908333 94.5612 →HR 94.936667 -33.5936 →HR -33.993333 -151.2536 →HR -151.426667 R/S 125.999888 If we want to get the result in nautical miles we can multiply the result by 60: 60 × 7559.993276 Or then we could convert degrees to radians and multiply the result by earth's radius. Formula (06-15-2017 10:29 AM)Paul Dale Wrote: It ought to be possible to calculate the distance using the modified Vincenty formula on the 25: These programs use the same formula as the original program for the SR-56: \( \Delta \sigma =\arccos \left ( \sin \phi _{1}\sin \phi _{2}+\cos \phi _{1}\cos \phi _{2}\cos(\Delta \lambda ) \right ) \) Conversion (06-15-2017 09:01 AM)Dieter Wrote: This will for instance show that the complete routine in the first steps (which is called several times as SBR 00) is obsolete since it does a simple d.ms to decimal degrees conversion (e.g. it turns 42°50' into 42,8333°). The 25 and 33 have a dedicated function for this. Well, not exactly. Therefore we have to convert e.g. \(94^\circ {56.2}'\) to \(94^\circ {56}' {12}''\) in our heads. References The original link to this document appears to be broken. (06-15-2017 09:01 AM)Dieter Wrote: But I am sure that HP25 great circle programs already exist. ;-)
Code: 01: 24 00 : RCL 0 |
|||
« Next Oldest | Next Newest »
|
User(s) browsing this thread: 1 Guest(s)