This file is indexed.

/usr/share/doc/dpuser-doc/history.html is in dpuser-doc 3.3+p1+dfsg-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
<html>
<head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
   <meta name="Author" content="Thomas Ott">
   <title>DPUSER - The Next Generation: History</title>
 <style type="text/css" title="currentStyle">
  @import "dpuser.css";
 </style>
<link rel="shortcut icon" href="dpuser.ico" type="image/xicon">
</head>

<body>

<div id="header">DPUSER - The Next Generation</div>
<div id="menu">
<ul>
<li><a href="index.html">Introduction</a></li>
<li><a class="current" href="history.html">History</a></li>
<li><a href="syntax.html">Syntax</a></li>
<li><a href="operators.html">Operators</a></li>
<li><a href="ifandloop.html">Structural commands</a></li>
<li><a href="variables.html">Data types</a></li>
<li><a href="plotting.html">Graphics</a></li>
<li><a href="fitsfiles.html">Fits files</a></li>
<li><a href="category.html">Category index</a></li>
<li><a href="functions.html">Function index</a></li>
<li><a href="procedures.html">Procedure index</a></li>
<li><a href="pgplot.html">Pgplot index</a></li>
<li><a href="examples.html">Examples</a></li>
<hr>
<li><a href="qfitsview.html">QFitsView documentation</a></li>
<hr>
</ul>
<form method="GET" action="search.html">
<input type="text" size=15 name="keywords">
<input type="submit" value="Search">
</form>
</div>
<div id="content">
<h1>Revision history</h1>
<table BORDER=0 CELLSPACING=0 CELLPADDING=0 COLS=8 WIDTH="100%">
<tr>
<td width="15%"><a href="#3.2">Version 3.2</a></td>
<td width="15%"><a href="#3.0">Version 3.0</a></td>
<td width="15%"><a href="#2.0">Version 2.0</a></td>
<td width="15%"></td>
<td width="15%"></td>
<td width="15%"></td>
</tr>
<tr>
<td width="15%"><a href="#1.2">Version 1.2</a></td>
<td width="15%"><a href="#1.1">Version 1.1</a></td>
<td width="15%"><a href="#1.0">Version 1.0</a></td>
<td width="15%"></td>
<td width="15%"></td>
<td width="15%"></td>
</tr>
<tr>
<td width="15%"><a href="#0.99">Version 0.99</a></td>
<td width="15%"><a href="#0.96">Version 0.96</a></td>
<td width="15%"><a href="#0.95">Version 0.95</a></td>
<td width="15%"><a href="#0.9">Version 0.9</a></td>
<td width="15%"><a href="#0.8">Version 0.8</a></td>
<td width="15%"><a href="#0.7">Version 0.7</a></td>
</tr>
</table>

<hr>
<a name="3.2"><h2>Version 3.2</h2>
<h3>Released June 2016</h3>

This version adds support for reading FITS binary tables. A new data type <b>list</b> has been added which can act as a container for FITS or String Array. The dependency on the external files <i>grfont.dat</i> and <i>rgb.txt</i> has been removed.

<h3>New functions:</h3>
<ul>
<li><a href="function_straightlinefit.html">straightlinefit</a> Fit a straight line to data.</li>
<li><a href="function_sersic2dsmoothfit.html">sersic2dsmoothfit</a> Fit a smoothed 2-dim sersic.</li>
<li><a href="function_sersic2dsmoothsimplefit.html">sersic2dsmoothsimplefit</a> same with a best-guess prior.</li>
<li><a href="function_readfitsbintable.html">readfitsbintable</a> read a FITS binary table.</li>
<li><a href="function_listfitsextensions.html">listfitsextensions</a> List FITS extensions by name.</li>
<li><a href="function_listtablecolumns.html">listtablecolumns</a> List FITS bineary table columns by name.</li>
<li><a href="function_list.html">list</a> create a variable of type list.</li>
</ul>

<h3>New procedures:</h3>
<ul>
<li><a href="procedure_setfitstype.html">setfitstype</a> set the FITS header type (binary table or image).</li>
</ul>


<hr>
<a name="3.0"><h2>Version 3.0</h2>
<h3>Released July 2011</h3>

<h3>New functions:</h3>
<ul>
<li><a href="function_getbitpix.html">getbitpix</a> Get the pixel type.</li>
<li><a href="function_isnan.html">isnan</a> tests for not-a-number.</li>
<li><a href="function_isinf.html">isinf</a> tests for infinity.</li>
<li><a href="function_polyfit2d.html">polyfit2d</a> performs a 2D N-th order polynomial fit.</li>
<li><a href="function_polyfit2derr.html">polyfit2derr</a> performs a 2D N-th order polynomial fit with errors.</li>
<li><a href="function_interpolate.html">interpolate</a> returns the interpolated value of a given 2D position.</li>
<li><a href="function_radialprofile.html">radialprofile</a> returns a radial profile centered on a 2D position.</li>
<li><a href="function_ellipticalprofile.html">ellipticalprofile</a> returns an elliptical profile centered on a 2D position.</li>
<li><a href="function_multigaussfit.html">multigaussfit</a> fits multiple gaussians to a vector.</li>
<li><a href="function_evalgaussfit.html">evalgaussfit</a> evaluates a gaussfit along a vector of x values.</li>
<li><a href="function_polyroots.html">polyroots</a> return the roots of a polynomial.</li>
<li><a href="function_xmin.html">xmin</a> returns the x coordinate of the minimum value in a 2D array.</li>
<li><a href="function_ymin.html">ymin</a> returns the x coordinate of the minimum value in a 2D array.</li>
<li><a href="function_readfitsall.html">readfitsall</a> reads a FITS file and all its extensions.</li>
<li><a href="function_cubequantile.html">cubequantile</a> does a quantile of all images in a cube.</li>
<li><a href="function_quantile.html">quantile</a> computes a quantile.</li>
</ul>

<h3>New procedures:</h3>
<ul>
<li><a href="procedure_copyheader.html">copyheader</a> copies the FITS header from one matrix to another.</li>
<li><a href="procedure_swapaxes.html">swapaxes</a> swaps axes of a 3D array.</li>
</ul>

<hr>
<a name="2.0"><h2>Version 2.0</h2>
<h3>Released July 2008</h3>
This is a major release after 2.5 years of silence.
<ul>
<li>The CDL (Client Display Library) used to communicate with saoimage has been replaced by XPA (X Public Access).</li>
<li>The dependence of the QT library is removed</li>
<li>Numerous bugs have been fixed.</li>
</ul>

<h3>New functions:</h3>
<ul>
<li><a href="function_gauss2dsimplefit.html">gauss2dsimplefit</a> fits a two-dimensional gauss function to data (without initial guess).</li>
<li><a href="function_transpoly.html">transpoly</a> calculates the transformation matrix between two coordinate systems (with errors).</li>
<li><a href="function_strtrim.html">strtrim</a> trims a string.</li>
<li><a href="function_right.html">right</a> returns the right part of a string.</li>
<li><a href="function_ten.html">ten</a> converts a sexigesimal number to decimal.</li>
<li><a href="function_primes.html">primes</a> calculates prime numbers.</li>
<li><a href="function_twodcut.html">twodcut</a> creates a longslit spectrum from a datacube.</li>
<li><a href="function_simplifywhitespace.html">simplifywhitespace</a> simplifies white spaces in a string.</li>
<li><a href="function_strsplit.html">strsplit</a> splits a string to a string array.</li>
<li><a href="function_interpol.html">interpol</a> interpolates a vector.</li>
<li><a href="function_sersic2dfit.html">sersic2dfit</a> fits a two-dimensional sersic function to data.</li>
<li><a href="function_sersic2dsimplefit.html">sersic2dsimplefit</a> fits a two-dimensional sersic function to data (without initial guess).</li>
<li><a href="function_sersicfit.html">sersicfit</a>  fits a one-dimensional sersic function to data.</li>
<li><a href="function_sersic2d.html">sersic2d</a> creates a two-dimensional sersic function.</li>
<li><a href="function_randomg.html">randomg</a> random number generation.</li>
<li><a href="function_poly.html">poly</a> creates a polynomial.</li>
</ul>

<h3>New procedures:</h3>
<ul>
<li><a href="procedure_userDialog.html">userDialog</a> supply a user defined dialog box for QFitsView.</li>
<li><a href="procedure_compile.html">compile</a> compile code at runtime.</li>
<li><a href="procedure_cirrange.html">cirrange</a> reduce a number to circular range.</li>
<li><a href="procedure_debug.html">debug</a> enable debugging messages.</li>
</ul>

<hr>
<a name="1.2"><h2>Version 1.2</h2>
<h3>Released September 2005</h3>

<ul>
<li>
A bug when using naxis1=... and similar inside user defined functions
and procedures has been fixed.
</li>
</ul>

<h3>New functions:</h3>
<ul>
<li><a href="function_sinfit.html">sinfit</a> fits a sine function to data.</li>
<li><a href="function_sincfit.html">sincfit</a> fits a sinc finction to data.</li>
<li><a href="function_rebin1d.html">rebin1d</a> rebins one-dimensional data.</li>
<li><a href="function_velmap.html">velmap</a> creates a velocity map from a datacube.</li>
<li><a href="function_fxcor.html">fxcor</a> cross-correlates two spectra and fits a sinc.</li>
<li><a href="function_correlmap.html">correlmap</a> cross-correlates a datacube with a spectrum.</li>
<li><a href="function_longslit.html">longslit</a> creates a longslit spectrum from a datacube.</li>
<li><a href="function_evalvelmap.html">evalvelmap</a> evaluates the result from velmap.</li>
<li><a href="function_voronoi.html">voronoi</a> computes the voronoi tesselation of an image.</li>
<li><a href="function_indexbase.html">indexbase</a> returns the index base for array subscripting.</li>
</ul>

<h3>New procedures:</h3>
<ul>
<li><a href="procedure_setindexbase.html">setindexbase</a> sets the index base for array subscripting.</li>
<li><a href="procedure_cnotation.html">cnotation</a> sets the index base for array subscripting to 0.</li>
<li><a href="procedure_fortrannotation.html">fortrannotation</a> sets the index base for array subscripting to 1.</li>
</ul>

<hr>
<a name="1.1"><h2>Version 1.1</h2>
<h3>Never really released</h3>
This is a maintenance release.

<ul>
<li>
The <a href="function_readfits.html">readfits</a> function can now also read
in only a part of a fits file.
</li>
<li>
The <a href="function_maxentropy.html">maxentropy</a> function finally works.
</li>
<li>
A bug in the <a href="function_string.html">string</a> function when the argument
was a complex number has been fixed.
</li>
</ul>

<h3>New functions:</h3>
<ul>
<li><a href="function_readfitsextension.html">readfitsextension</a> reads in a FITS extension.</li>
<li><a href="function_moffat.html">moffat</a> creates a Moffat function.</li>
<li><a href="function_multigauss2dfit.html">multigauss2dfit</a> fits several circular gaussians to an image.</li>
</ul>

<hr>
<a name="1.0"><h2>Version 1.0</h2>
<h3>Released August 12, 2004</h3>
This version adds a few new functions and procedures. Mostly, existing functions
have been expanded, namely the ability to handle FITS file extensions. Also, the
documentation has been extended. The main change is that DPUSER - The Next
Generation now is fully integrated into the QFitsView program also
written by me, and DPUSER now uses free code only (notably the GNU Scientific Library).

<ul>
<li>
The <a href="function_header.html">header</a>,
<a href="function_naxis.html">naxis</a>, <a href="function_naxis1.html">naxis1</a>, 
<a href="function_naxis2.html">naxis2</a>, and <a href="function_naxis3.html">naxis3</a>
functions can now also handle FITS extensions.
</li>
<li>
The <a href="function_readfits.html">readfits</a> function can now also read
in bitmap files.
</li>
<li>
The <a href="function_getfitskey.html">getfitskey</a> function has a new switch
/text and handles non-existing FITS keys.
</li>
<li>
The handling of user defined functions and procedures has been improved. Also, a
bug when using nested functions/procedures was fixed.
</li>
<li>
The parser can now handle code like this:<br>
<code>
print = 10<br>
print print
</code>
</li>
</ul>

<h3>New functions:</h3>
<ul>
<li><a href="function_meandev.html">meandev(X, a)</a> calculates mean deviation.</li>
<li><a href="function_version.html">version()</a> returns the current version string.</li>
</ul>

<h3>New procedures:</h3>
<ul>
<li><a href="procedure_precess.html">precess</a> coordinates from one epoch to another.</li>
<li><a href="procedure_pwd.html">pwd</a> prints the current working directory.</li>
<li><a href="procedure_dir.html">dir</a> prints a directory listing.</li>
</ul>


<hr>
<a name="0.99"><h2>Version 0.99</h2>
This is the last version of the 0.9x series. It is mainly a bug fix release.
If you have any knowledge of bugs or inconsistent features, please let me
know ASAP - I'll try to fix them before the release of version 1.0.
<ul>
<li><p>
An immediate core dump when setting a string element &le; 0 or when setting a substring to anything else but a string has been fixed.
</li>
<li><p>
The size of the command history is now limited to 500 entries.
This prevents the file "dpuser.history" to grow indefinitely.
</li>
<li><p>
Several pgplot routines could cause a core dump when called with inconsistent arguments. For those, the arguments supplied are checked.
</li>
<li><p>
The functions <a href="function_total.html">total</a>, <a href="function_min.html">min</a>, 
<a href="function_max.html">max</a>, <a href="function_avg.html">avg</a> handle infinite
and undefined values by ignoring them. Also, an optional value which should be ignored
can be specified.
</li>
<li><p>
The handling of absolute file names under Microsoft Windows has been improved.
</li>
<li><p>
The functions <a href="function_min.html">min</a> and <a href="function_max.html">max</a>
have been expanded in their functionality.
</li>
<li><p>
A few examples of the usage of DPUSER are provided in the examples/ subdirectory.
</li>
</ul>
<h3>New functions:</h3>
Version 0.99 introduces no new functions or procedures.

<hr>
<a name="0.96"</a><h2>Version 0.96</h2>
<ul>
<li><p>
I have introduced a <a href="operators.html#mathematical">modulus operator ("%")</a>
applicable to integer arguments.
</li>
<li><p>
For the Win32 version of DPUSER, I was able to dig out a native port of
<a href="http://www.io.com/~bub/rxvt.html">rxvt for Windows</a>. This offers many more features
than the windpuser.exe program distributed with ealier versions. I slightly
modified rxvt by adding a DPUSER icon.
</li>
<li><p>
The linux binary distribution is now statically linked against QT (as advertised
in the <a href="installing.html">Install section</a>). This prevents an immediate
core dump on RedHat linux.
</li>
<li><p>
Some memory leaks have been removed.
</li>
<li><p>
The <a href="function_median.html">median</a> function now returns the single
element value if applied to a matrix with only one element (instead of zero).
</li>
<li><p>
The <a href="function_nelements.html">nelements</a> function now returns a
value of one if not applied to a matrix but a number (either integer, double
precision or complex).
</li>
<li><p>
Several bugs in reading huge FITS cubes (&gt;256 MB) have been fixed. Now files
up to a size of 2 GB can be read.
</li>
<li><p>
The <a href="function_rotate.html">rotate</a> function used to multiply the total
counts in an image by a factor of 4. This has been fixed.
</li>
<li><p>
The <a href="function_reass.html">reass</a> function had a bug
when applied to matrices with an uneven axes length. This also affects
the <a href="function_smooth.html">smooth</a> function. Fixed.
</li>
<li><p>
The <a href="function_shift.html">shift</a> function has some new features.
</li>
</ul>
<h3>New functions:</h3>
<ul>
<li><a href="function_convolve.html">convolve(X,Y)</a> convolves X and Y.</li>
<li><a href="function_gammp.html">gammp(a,x)</a> returns the incomplete gamma function.</li>
<li><a href="function_reform.html">reform(X,n1,n2,n3)</a> changes the axes lengths of an array.</li>
<li><a href="function_find.html">find(image, hmin, fwhm)</a> from IDL's astrolib.</li>
</ul>

<hr>
<a name="0.95"</a><h2>Version 0.95</h2>
<ul>
<li><p>
In this version, some matrix arithmetics functions were added. This includes
the <a href="operators.html#mathematical">"#" operator</a> which does matrix
multiplication.
</li>
<li><p>
Beginning with this version, it is possible to write user defined
<a href="syntax.html#procedures">procedures</a>
and <a href="syntax.html#functions">functions</a>.
Some examples are provided in the <b>dpuserlib/</b> directory.
<br><b>!!!Feedback on this new feature is extremely welcome!!!</b>
</li>
<li><p>
If a file named "startup.dpuser" is located either in your home directory or
in a directory pointed to by the DPUSER environment variable,
it will be executed during startup of DPUSER. An example is provided in the
<b>dpuserlib/</b> directory.
</li>
<li><p>
Some minor bugs (especially concerning arithmetics including double and single
precision numbers) have been fixed.
</li>
</ul>
<h3>New functions:</h3>
<ul>
<li><a href="function_invert.html">invert(X)</a> inverts a matrix.</li>
<li><a href="function_transpose.html">transpose(X)</a> transposes a matrix.</li>
<li><a href="function_isvariable.html">isvariable(S)</a> to determine whether S is a named variable.</li>
<li><a href="function_pi.html">pi()</a> returns the number pi.</li>
</ul>
<h3>New procedures:</h3>
<ul>
<li><a href="procedure_break.html">break</a> stops any script or loop.</li>
<li><a href="procedure_run.html">run</a> executes a script.</li>
<li><a href="procedure_echo.html">echo</a> turns on/off echo mode.</li>
</ul>

<hr>
<a name="0.9"></a><h2>Version 0.9</h2>
<ul>
<li><p>
The functions <a href="function_naxis.html">naxis</a>, 
<a href="function_naxis1.html">naxis1</a>, 
<a href="function_naxis2.html">naxis2</a>, and
<a href="function_naxis3.html">naxis3</a> read in the values
much faster when applied to FITS files (used to read in the complete file).
</li>
<li><p>
The <a href="function_ssa.html">ssa</a> function is now a lot quicker when using the /resize switch.
</li>
<li><p>
A bug in the <a href="function_cubemedian.html">cubemedian</a> function when applied to FITS files with NAXIS2 not a integer power of 2 has been fixed.
</li>
<li><p>
Subtracting a matrix from a real number resulted in wrong results.
This also applies to complex numbers and FITS files. Along with this,
a <tt>print -'hhh'</tt> didn't to the correct thing. This has been fixed.
</li>
</ul>
<h3>New functions:</h3>
<ul>
<li><a href="function_quickgauss.html">quickgauss(x, y, fwhm, speed)</a></li>
<li><a href="function_getenv.html">getenv(environment_variable)</a></li>
<li><a href="function_cblank.html">cblank(value)</a> is now also available as a function</li>
<li><a href="function_now.html">now()</a></li>
<li><a href="function_polar.html">polar(ampl, arg)</a></li>
<li>The PGPLOT modules
<a href="pgplot_pgband.html">pgband</a>,
<a href="pgplot_pgbeg.html">pgbeg</a> (<a href="pgplot_pgbegin.html">pgbegin</a>),
<a href="pgplot_pgcurs.html">pgcurs</a> (<a href="pgplot_pgcurse.html">pgcurse</a>),
<a href="pgplot_pgopen.html">pgopen</a>,
and <a href="pgplot_pgrnd.html">pgrnd</a>
are now also implemented as functions (with the exception of pgrnd, they have always been implemented as procedures).</li>
<li><a href="function_transmatrix.html">transmatrix(ref1, ref2 [, chix, chiy])</a></li>
<li><a href="function_transform.html">transform(coords, trans)</a></li>
</ul>
<h3>New procedures:</h3>
<ul>
<li><a href="procedure_setenv.html">setenv environment_variable, value</a></li>
</ul>

<hr>
<a name="0.8"><h2>Version 0.8</h2>
<ul>
<li><p>
Switch to cross-platform library <a href="http://www.trolltech.com" target="_top">QT</a>.
This affects strings, string arrays, as well as the <a href="function_dir.html">
dir</a> and <a href="function_findfile.html">findfile</a> functions. The
interface doesn't change.
This removed a memory leak in string arrays and fixes problems with
<a href="function_findfile.html">findfile</a> which would not list all files.
The SFL library now is no longer needed to build DPUSER.
</li>
<li><p>
A new integer global variable "tmpmem" which gives the number of bytes
which can be used for temporary storage. At the moment, this only affects
the function <a href="function_cubemedian.html">cubemedian</a>.
The interface doesn't change.
</li>
<li><p>
A bug has been fixed in <a href="procedure_cubemerge.html">cubemerge</a>
which sometimes would not update the FITS header correctly.
</li>
<li>
Extended documentation.
</li>
</ul>
<h3>New functions:</h3>
<ul>
<li><a href="function_pwd.html">pwd()</a></li>
</ul>

<hr>
<a name="0.7"><h2>Version 0.7</h2>
<ul>
<li><p>
The procedure <a href="procedure_sao.html">sao</a> accepts lower and upper
limits; added /zscale and /log switch
</li>

</div>
<div id="copyright">
Copyright &copy; Thomas Ott ---- DPUSER - The Next Generation 3.3 (Rev. )
</div>
</body>
</html>