Added more builtin inverse conversion functions

Added builtin functions to convert between degrees, minutes and
    seconds and degrees under the config("mod") round rules:

	dms2d(d, m, s [,rnd]) - convert deg, min, and secs to deg
	dm2d(d, m [,rnd]) - convert deg, min to deg

	See help/dms2d and help/dm2d.

    Example:

	; print dms2d(12, 20, 44.16);
	12.3456

	; print dm2d(3601, -25.5594);
	0.57401

    Added builtin functions to convert between gradians, minutes and
    seconds and gradians under the config("mod") round rules:

	gms2g(g, m, s [,rnd]) - convert grad, min, and secs to grad
	gm2g(g, m [,rnd]) - convert grad and min to grad

	See help/g2gms and help/g2gm.

    Example:

	; print gms2g(12, 20, 44.16);
	12.3456

	; print gm2g(4001, -25.5594);
	0.57401

    Added builtin functions to convert between hours, minutes and
    seconds and hours under the config("mod") round rules:

	hms2h(h, m, s [,rnd]) - convert hours, min, and secs to hours
	hm2h(h, m [,rnd]) - convert hours, min to hours

	See help/hms2h and help/hm2h.

    Example:

	; print hms2h(12, 20, 44.16);
	12.3456

	; print hm2h(241, -25.5594);
	0.57401
This commit is contained in:
Landon Curt Noll
2021-09-27 02:14:18 -07:00
parent d5de36841a
commit ada15fdabc
10 changed files with 833 additions and 8 deletions

84
help/dms2d Normal file
View File

@@ -0,0 +1,84 @@
NAME
dm2d, dms2d - convert degrees, minutes, and seconds to degrees
SYNOPSIS
dm2d(d, m [,rnd])
dms2d(d, m, s [,rnd])
TYPES
d real
m real
s real (defauls to 0)
rnd nonnegative integer, defaults to config("mod")
return degrees
DESCRIPTION
Convert degrees, m minutes, and s seconds returning degrees.
The return value in degrees, is quivalent to the following:
mod(d + m/60 + s/3600, 360, rnd);
Depending on the rounding mode, the return could be a real value
in the interval [0, 360) or a real value in the interval (-360, 0].
For the default round mode, the return value is in the interval [0, 360).
A missing rnd defaults to config("mod").
For more information on the effects of rnd, see "help mod".
The dm2d(d, m, rnd) builtin is an alias for dms2d(d, m, 0, rnd).
EXAMPLE
; print dm2d(203, 325.5594);
208.42599
; print dm2d(3601, -25.5594);
0.57401
; print dm2d(-923, -25.5594);
156.57401
; print dms2d(12, 20, 44.16);
12.3456
; print dms2d(123.456, -345.68, 4.08);
117.6958
; print dms2d(-65, -40, -44.4);
294.321
; print dm2d(203, 325.5594, 1);
-151.57401
; print dms2d(12, 20, 44.16, 1);
-347.6544
LIMITS
none
LINK LIBRARY
none
SEE ALSO
config, d2dm, d2dms, dm2d, dms2d, g2gm, g2gms, gm2g, gms2g,
h2hm, h2hms, hm2d, hms2d, mod
## Copyright (C) 2021 Landon Curt Noll
##
## Calc is open software; you can redistribute it and/or modify it under
## the terms of the version 2.1 of the GNU Lesser General Public License
## as published by the Free Software Foundation.
##
## Calc is distributed in the hope that it will be useful, but WITHOUT
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
## Public License for more details.
##
## A copy of version 2.1 of the GNU Lesser General Public License is
## distributed with calc under the filename COPYING-LGPL. You should have
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
## Under source code control: 2021/09/25 17:24:51
## File existed as early as: 2021
##
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/