summaryrefslogtreecommitdiff
path: root/tests/examplefiles/idl_sample.pro
diff options
context:
space:
mode:
Diffstat (limited to 'tests/examplefiles/idl_sample.pro')
-rw-r--r--tests/examplefiles/idl_sample.pro73
1 files changed, 0 insertions, 73 deletions
diff --git a/tests/examplefiles/idl_sample.pro b/tests/examplefiles/idl_sample.pro
deleted file mode 100644
index 814d510d..00000000
--- a/tests/examplefiles/idl_sample.pro
+++ /dev/null
@@ -1,73 +0,0 @@
-; docformat = 'rst'
-
-; Example IDL (Interactive Data Language) source code.
-
-;+
-; Get `nIndices` random indices for an array of size `nValues` (without
-; repeating an index).
-;
-; :Examples:
-; Try::
-;
-; IDL> r = randomu(seed, 10)
-; IDL> print, r, format='(4F)'
-; 0.6297589 0.7815896 0.2508559 0.7546844
-; 0.1353382 0.1245834 0.8733745 0.0753110
-; 0.8054136 0.9513228
-; IDL> ind = mg_sample(10, 3, seed=seed)
-; IDL> print, ind
-; 2 4 7
-; IDL> print, r[ind]
-; 0.250856 0.135338 0.0753110
-;
-; :Returns:
-; lonarr(`nIndices`)
-;
-; :Params:
-; nValues : in, required, type=long
-; size of array to choose indices from
-; nIndices : in, required, type=long
-; number of indices needed
-;
-; :Keywords:
-; seed : in, out, optional, type=integer or lonarr(36)
-; seed to use for random number generation, leave undefined to use a
-; seed generated from the system clock; new seed will be output
-;-
-function mg_sample, nValues, nIndices, seed=seed
- compile_opt strictarr
-
- ; get random nIndices by finding the indices of the smallest nIndices in a
- ; array of random values
- values = randomu(seed, nValues)
-
- ; our random values are uniformly distributed, so ideally the nIndices
- ; smallest values are in the first bin of the below histogram
- nBins = nValues / nIndices
- h = histogram(values, nbins=nBins, reverse_indices=ri)
-
- ; the candidates for being in the first nIndices will live in bins 0..bin
- nCandidates = 0L
- for bin = 0L, nBins - 1L do begin
- nCandidates += h[bin]
- if (nCandidates ge nIndices) then break
- endfor
-
- ; get the candidates and sort them
- candidates = ri[ri[0] : ri[bin + 1L] - 1L]
- sortedCandidates = sort(values[candidates])
-
- ; return the first nIndices of them
- return, (candidates[sortedCandidates])[0:nIndices-1L]
-end
-
-
-; main-level example program
-
-r = randomu(seed, 10)
-print, r
-ind = mg_sample(10, 3, seed=seed)
-print, ind
-print, r[ind]
-
-end \ No newline at end of file