Adding Interactive Data Language (IDL) support.

This commit is contained in:
Michael Galloy
2013-03-07 18:48:27 -07:00
parent 5d5935965a
commit a8b2b0a86b
5 changed files with 121 additions and 0 deletions

35
samples/IDL/mg_gcd.pro Normal file
View File

@@ -0,0 +1,35 @@
; docformat = 'rst'
;+
; Find the greatest common denominator (GCD) for two positive integers.
;
; :Returns:
; integer
;
; :Params:
; a : in, required, type=integer
; first integer
; b : in, required, type=integer
; second integer
;-
function mg_gcd, a, b
compile_opt strictarr
on_error, 2
if (n_params() ne 2) then message, 'incorrect number of arguments'
if (~mg_isinteger(a) || ~mg_isinteger(b)) then begin
message, 'integer arguments required'
endif
_a = abs(a)
_b = abs(b)
minArg = _a < _b
maxArg = _a > _b
if (minArg eq 0) then return, maxArg
remainder = maxArg mod minArg
if (remainder eq 0) then return, minArg
return, mg_gcd(minArg, remainder)
end