Changes Since Igor Pro 4.0
This file describes significant changes
made to Igor or any supporting files since Igor 4.0 first
shipped. Here, in reverse chronological order, are the
updates:
- Nov 7, 2003: Update
4.09A
- Oct 20, 2003: Update
4.09
- Jun 23, 2003: Update
4.08
- Dec 3, 2002: Update
4.07
- Jul 12, 2002: Update
4.06A
- Jun 7, 2002: Update
4.06
- Feb 12, 2002: Update
4.05A
- Jan 31, 2002: Update
4.05
- Sep 14, 2001: Update
4.04
- Jun 29, 2001: Update
4.03
- Apr 11, 2001: Update
4.02A
- Mar 27, 2001: Update
4.02
- Nov 27, 2000: Update
4.01A
- Oct 31, 2000: Update
4.01
- Oct 9, 2000: Update
4.0A
-
- Sep 15, 2000: Release 4.00 CD. See IGOR
Pro 4.0 New Feature Details about changes since Igor
3.1.
How to Update Igor Pro 4
You can download standalone
updaters to Igor 4.09A from our FTP site. For more details, click
here.
NOTE: The "universal updater
programs", Update Igor To Latest Version, Igor4WebInstall.exe, or Install Igor 4 from the
Web are no longer supported: the web site that hosted the files they download has been retired.
Update
4.09A
Igor Application
To install the "Carbon"
version of Igor, you will need your serial number
and activation key.
WINDOWS: Restored compatibility with Windows 95 and
NT.
Fixed numerical error in ImageLineProfile standard
deviation calculation.
Fixed bug in Sort where negative values very close
together would sort backwards.
Fixed areaXY bug introduced in Igor 4.09, where reversing
the x range no longer negated the area (which it should, and
now does again). FaverageXY correctly doesn't do this.
Fixed bug in Curve Fit dialog: In a user-defined fit
function, entirely blank lines containing space or tab
characters (and nothing else) could cause errors in parsing
the function, in turn causing incorrect information about
number/names of fit coefficients.
Procedures
Minor correction to GizmoRotation.ipf.
Update
4.09
Igor Application
To install the "Carbon"
version of Igor, you will need your serial number
and activation key.
Fixed crash in Modify Traces dialog when zwave is NULL.
Also added test for NULL zwave in compiled ModifyGraph for
zColor, zmrkNum and zmrkSize.
Fixed possible crash in the Date Format dialog that could
occur if you chose a date format with four elements.
areaXY and faverageXY no longer return negative values
when the x range is reversed.
SavePICT can specify the window to be saved with the new
/N flag.
Drawing objects in layouts no longer draw outside the
layout window during Export Graphics.
The mask wave now works properly with Poly2D curve fit
function.
Fixed bug in IntegrateODE/M=1 (Bulirsch-Stoer method).
Previously, the answers were correct, but the bug fix gives
an increase in speed of one or two orders of magnitude on
suitable systems.
Fixed bug: FindRoots failed to mark certain waves as
modified so tables and graphs failed to update properly.
MACINTOSH OS X: Made some changes to dialogs to fix
disappearing dialog items under OS X 10.3 (Panther).
MACINTOSH OS X: reduced CPU hog behavior of the Curve Fit
progress window after a fit was finished.
WINDOWS: Fixed a rare crash that occurred if you called
ExecuteScriptText and the OS returned unknown error
codes.
WINDOWS: Fixed a problem where graphs were created really
small and mostly out of sight if Igor was minimized.
WINDOWS: Fixed a problem where tables were created too
small on two-monitor computers.
WINDOWS: Fixed bad abbreviated Japanese date (month
symbol was missing).
WINDOWS: Fixed the Common Format popup menu in the Date
Format dialog. The third and fourth items from the bottom
did not work correctly.
XOPs
MACINTOSH Carbon: XLLoadWave 3.62, which shipped with
Igor Pro 4.08 Carbon, was missing support for the /J flag.
This has been fixed by XLLoadWave 3.63.
WINDOWS: Fixed HDFLoader XOP so that it accepts
Macintosh-style paths as well as Windows-style paths.
Procedures
Added Transpose Waves In Table procedure. If you have 3
waves with 10 rows in the top table, choosing "Transpose
Waves In Top Table" from the "Table" menu creates 10 waves
with 3 rows in the current data folder.
Added /Z flag to Wave statement in SaveTable.ipf.
Added the PixelFromLinearAxisVal() function to Axis
Utilities.ipf.
Update
4.08
Igor Application
To install the "Carbon"
version of Igor, you will need your serial number
and activation key.
Igor no longer crashes if a fit function uses the
Override keyword.
The LayoutInfo function previously returned a string
containing a "NUMOJBECTS" keywords. This misspelling has
been corrected so the returned string now contains
"NUMOBJECTS".
ImageRotate/O scramble of rows and cols has been
fixed.
Igor no longer crashes when trying to modify an image or
contour plot named 'something#other'.
PopupMenu mode limit raised from 1000 to 0x7FFFFFFF.
ListBox max number of columns raised from 20 to 100.
ControlInfo returns the horizontal and vertical scrolling
distances for a ListBox.
A panel whose size is locked with ModifyPanel fixedSize=1
is temporarily unlocked in any drawing tools mode, or in the
temporary selector mode (command+option keys on Mac or
Ctrl+Alt keys on Windows).
Fixed a crash that occurred if you used LoadWave/F/B and
the number of columns specified by /F was less than the
number of columns specified by /B.
Fixed a crash that occurred if the history grew beyond
about 30 MB without saving.
When exporting RTF files, Igor now includes the \fcharset
RTF control. This optional control appears to be necessary
for some RTF readers to recognize Japanese text.
Fixed a problem in importing some RTF files that used
decimal, center or right-justified tabs.
Fixed a bug which caused the front layout to be used
instead of the specified layout in a Notebook
picture={$layoutName} operation.
Changed the Write Row Positions and Write Column
Positions feature of the Save operation to write up to 15
decimal digits instead of 6.
Fixed memory leak when copying text wave cells in a
table.
Fixed the ModifyGraph dateFormat command. It was ignoring
the language parameter.
Window hooks (see SetWindow) can now intercept
command-clicks (Macintosh) or right-clicks (Windows) and
prevent Igor from displaying the usual contextual menus. The
window hook can provide it's own contextual menu by using
the new PopupContextualMenu operation.
WINDOWS: Fixed bug in random number generator
initialization that caused the same sequence to be generated
every time Igor started up. See SetRandomSeed. This was
fixed previously, but the fix made it into Macintosh code
only.
WINDOWS: Fixed a problem that caused procedure windows
and notebooks to print blank pages on some non-PostScript
printers under Windows 98.
WINDOWS: Improved mouse wheel behavior in text windows.
Implemented mouse wheel support for tables and page
layouts.
MACINTOSH Carbon: Fixed potential crash involving rotated
text.
MACINTOSH Carbon: If you tried to resize a panel with the
tools showing to be narrower when it's size had been locked
with ModifyPanel fixedSize=1, the panel would become wider
by the width of the tool palette.
MACINTOSH Carbon: ModifyPanel fixedSize=1 keeps the panel
the same size instead of growing by 1 pixel when the user
attempts to make it bigger.
MACINTOSH Carbon: If you double-clicked a column name in
a table, sometimes the digits popup menu was disabled. This
is fixed.
MACINTOSH Carbon: Fixed problem whereby the list of
numeric formats in the Modify Columns dialog did not update
correctly when you moved from one column to another.
MACINTOSH Carbon: Copy/paste of a single blank cell in a
table did not work. This is now fixed.
MACINTOSH Carbon: Fixed a problem that caused page setups
to not be loaded from an experiment sent as an attachment
using Microsoft Outlook Express on OS X.
MACINTOSH Carbon: Fixed the batch file mechanism. It did
not find the "Igor Batch Init File" or the "Igor Batch File"
in the Igor Pro Folder.
MACINTOSH Carbon: Fixed event-handling to avoid hogging
CPU in certain cases, notably when the Curve Fit progress
window is displayed.
MACINTOSH OS X: Put in a workaround for a problem
apparently caused by Norton Antivirus that causes Igor to
leave temporary files (Filename.pxpT0, Filename.pxpT1, . .
.) after a save.
MACINTOSH OS X: Put in a workaround to prevent user from
activating the wrong window when a modal dialog is
displayed. This occurred if the user put Igor in the
background and then activated Igor by clicking on a target
window while a modal dialog was displayed.
XOPs
Added code to allow the XLLoadWave XOP to recognize
built-in date format codes added in Excel 2000.
MACINTOSH Carbon: The GWLoadWave XOP has been ported to
Carbon and is not part of the Carbon distribution.
XLLoadWave now sets the S_worksheetName variable even if
the /S=worksheetName flag is omitted from the command.
Fixed crash in Interpolate operation if using Dest X
Coords From Dest Wave and destination wave has fewer than 2
points.
Windows: The VDT XOP can now support more than for COM
ports.
Procedures
The Transform Axis package has a bug fix: the Tick Editor
was using incorrect values for the axis ends, causing a tick
to be misplaced in certain cases
The Transform Axis package now puts up an alert when a
graph window is closed asking if you want to keep the
tranform axis information. If you click Yes, you can use the
recreation macro that you may have saved in a previous alert
to recreate the graph with the transform axes.
Added FolderFromPath(filePath) function to File Name
Utilities procedure file.
Added WMImageLogColorTable.ipf, which implements log
color table for images by creating a logarithmic lookup wave
for the image.
In WMImageInfo.ipf, fixed bug in
WM_ImageColorLookupWave(), added WM_ColorScaleForImage() and
WM_MakeImageLogLookupWave().
Axis Utilities.ipf has new AxisLabelText() function.
Examples
Added SearchProceduresInFolder.pxp, an experiment that
searches procedure files for Igor commands that don't take
advantage of features that explictly set the window name;
namely control statements like Button and Checkbox and
window-related statements like ModifyGraph and DrawText.
Also includes a general stringmatch-like searching method.
An Igor programmer can add other search methods.
Update
4.07
Igor Application
To install the "Carbon"
version of Igor, you will need your serial number
and activation key.
MACINTOSH Classic: Improved detection of symbol-style
fonts when exporting eps files.
MACINTOSH Carbon and Windows: Added ability for the user
to specify that a font is to be treated as a symbol-style
font when exporting EPS files. A new text wave named
PSSymbolNames is used to hold the PostScript font names of
such fonts. If you are adding a symbol-style font
(MathematicalPi-One for example), to the font translation
and naming tables (TTtoPS and TTPSFNames), also add the name
to PSSymbolNames. See the "PostScript Font Names" section in
the "Exporting Graphics (Windows)" chapter for information
about TTtoPS and TTPSFNames.
MACINTOSH Carbon: Added code to automatically detect
PostScript font names when exporting eps files so the user
does not have to edit the above mentioned font translation
and naming tables. However: this only works if the screen
font is a TrueType font and will not work for legacy bitmap
fonts. If, when exporting an EPS file, you see a message in
the history that the PostScript font name could not be
found, then you will need to set up the TTtoPS and
TTPSFNames waves.
Added new flag, /G=g, to AppendImage and NewImage. g=1
supresses the autodetection of 3 plane images as direct
(rgb) color. When used with NewImage, it also supresses
detection of explicit mode. g= 0 is the default and the same
as no /G flag.
Increased by a factor of 10 the size of the stack that
limits function recursion. Also provided a mechanism for the
user to change the stack size. Use
SetIgorOption memory,rStackSize=s
where s is the number of bytes for the new stack. The
minimum size is 16000 (which was the previous fixed size).
You can read the current size using
SetIgorOption memory,rStackSize=?
and then reading the V_Flag variable. Because the stack
can only be changed while nothing is executing, you must
either set the size manually on the command line before
executing code that needs the new size or you must start
your code using Execute/P after setting the size. This
mechanism is currently considered experimental and is not
documented except in these notes.
Changed the behavor of the histogram bar display mode
when a zero height bar is encountered. They now allign with
the base of the preceeding bar and are not quite so thin
(this change is visible only on a high resolution output
device.) If you prefer the old behavor, let us know.
Fixed rare crash involving string SetVariable controls,
dependency objects and the use of the Abort command.
Added documentation for fStyle and fColor keywords as
used in the GroupBox control. These keywords have long been
available but the the following documentation was
missing:
- fColor=(r,g,b) sets color of the title text. r, g and
b can range from 0 to 65535.
-
- fstyle=fs Sets the font style of the title text. fs
is a binary coded number with each bit controlling one
aspect of the font style for the tick mark labels as
follows:
-
- bit 0: bold.
- bit 1: italic.
- bit 2: underline.
- bit 3: outline (Macintosh only).
- bit 4: shadow (Macintosh only).
- bit 5: condensed (Macintosh only).
- bit 6: extended (Macintosh only).
Fixed bug in RemoveFromGraph that (rarely) caused a bogus
"can't remove same wave twice" error.
Fixed a bug that could cause a crash if more than one
trace is removed from a graph and more than one of the
removed traces use the same X wave.
Pressing the "stop" button in the debugger while
debugging a background task now stops the background
task.
Stepping the debugger to the end of a string function
when called as the value of a PopupMenu control no longer
crashes Igor.
Changed the warning that is issued if Igor can not
initialize the printer to be displayed in the splash screen
on Macintosh (non-Carbon only) or in the status bar on
Windows instead of using a dialog.
Fixed a bug that could cause DoIgorMenu "Load Waves",
"Load Waves" to crash when a second dialog was
displayed.
WINDOWS: Fixed problem when exporting large emfs where
fill patterns would be missing if they were outside the
bounds defined by the default printer.
MACINTOSH: Fixed a problem in image plots when axes are
reversed from the default and the image size on the screen
exactly matches the data size.
MACINTOSH: On OS X, fixed a crash that occurred in the
Open or Save File dialog. If you hover the mouse over a file
or folder name that did not fit in its column, the OS
displays a help tag showing the full name. This caused Igor
to crash.
MACINTOSH: Fixed a problem that caused layouts to display
strange colors under Mac OS X 10.2 in millions of colors
mode.
MACINTOSH: On OS X, if you did a Save Experiment As to an
unpacked experiment, overwriting an older experiment folder
of the same name, Igor saved the wave and miscellaneous
files to the wrong place.
Fixed off-by-one bug in FuncFit that caused incorrect X
scaling for the Y wave in an all-at-once fit function.
ImageRotate no longer adds 0.5 to round the result when
the source wave is single or double-precision floating
point. Also, when performing rotations that are multiples of
90 degrees the data is now copied precisely rather than
going through interpolation code. A new flag, /S, when used
with 90 degree multiple rotations only, causes the
coordinate system (i.e., x and y wave scaling) to be rotated
with the data.
Previously, pictures in notebooks and help files were
drawn transparent. Now they are drawn opaque. This change
makes a difference only if the notebook background is other
than white. It was done because the transparent drawing was
slow and was often not appropriate.
Fixed bug where error bars were the wrong size when used
on shrunken axes and when ModifyGraph axisClip=1 was in
effect.
Allowed more room in the Error Bars dialog for the wave
popup menus.
Fixed a crash triggered by clicking the Go Back button in
a help file that you arrived at by clicking a link in the
Help Browser.
Fixed endless updating problem with DrawPoly when used
with waves when the polygon was in a graph that was
displayed in a page layout. This problem was discovered when
using the Polar Graph "fill to origin" option.
MACINTOSH: On OS X, added a workaround for what appears
to be a Mac OS X 10.2.x bug. The bug causes Igor to crash
when you save certain experiments on certain machines. There
is no obvious pattern as to which machines are affected but
most are not. Igor crashes when it calls the OS X
PMSessionMakeOldPrintRecord routine to make a
pre-Carbon-compatible page setup record. Igor stores both
Carbon and pre-Carbon page setup records in experiments so
that they can be opened when running on a pre-Carbon
system.
Also, the pre-Carbon page setup record is used when you
open a Macintosh experiment on Windows to determine the
orientation of the page. If you have a crash when saving and
if the "Igor Pro Carbon.crash.log" file contains the word
"PMSessionMakeOldPrintRecord", you are probably a victim of
this bug. The workaround is to execute the following:
SetIgorOption printing, SavePreCarbonPageSetups=0
You must do this each time you start Igor Pro Carbon. It
tells Igor to NOT save the pre-Carbon page setup record,
thus avoiding the crash. However, if you take the experiment
to a pre-Carbon Macintosh or to Windows, you will get
default page setups, so that your paper size and page
orientation will be lost.
XOPs
MACINTOSH (Carbon only): The XLLoadWave XOP now works on
Mac OS X.
The XLLoadWave operation now has a /J flag which allows a
programmer to determine what worksheets exist in a workbook
and what cells are defined in each worksheet.
MACINTOSH (Carbon only): The VDT XOP, used for serial
port control, has been removed from the Carbon distribution.
It never worked under Carbon and was included by mistake. If
you need to use VDT, you will have to use the pre-Carbon
Igor.
MACINTOSH (Carbon only): Removed some code that made the
Surface Plotter print warning statements to the history
under some obscure conditions.
MACINTOSH (Carbon only): Fixed a crash in the Data
Browser that occurred when a user tried to rename a data
folder with a name that was already in use. The crash took
place on dismissing the error dialog.
New GISLoadWave XOP- loads USGS Digital Elevation Model
and Digital Line Graph files. Digital Elevation Model files
contain matrix data of topography; Digital Line Graph files
contain information on things like rivers and lakes, roads,
geopolitical boundaries, and more. For more info, see new
example experiment, HalfDomeDemo.pxp, in Examples:Feature
Demos. A procedure file, GISLoadWaveProcs.ipf, helps handle
DLG files.
Procedures
The Global Fit package has been enhanced to create a
separate coefficient wave for each input Y data set. The
waves are named "Coef_yname" where "yname" is replaced with
the name of each Y data set wave.
Modified Axis Utilities to compile with experiments still
in Igor 3.1-mode (Silent 100).
Power Spectral Density.ipf's NormalizedPSD macro was
replaced with PowerSpectralDensity, which corrects the PSD
scaling. The DC-removal feature of NormalizedPSD is part of
PowerSpectralDensity and the new fPowerSpectralDensity
function. An exhaustive explanation of how the PSD is
computed is in the new PSD Demo experiment.
Added Image Saver.ipf and SaveFloatingPointTIFF.ipf to
the Image Processing procedures.Image Saver.ipf adds a "Save
Image..." menu item to the Data:Save Waves submenu. The menu
item invokes a panel-based Save Image "dialog".
SaveFloatingPointTIFF.ipf adds the WMSaveFloatingOr16BitTIFF
procedure to save single-precision floating point TIFFs. The
obsolete TIFF Saver and TIFF Loader procedures have been
removed.
New GISLoadWaveProcs.ipf contains procedures that aid in
handling Digital Elevation Model files loaded by the new
GISLoadWave XOP. For more info, see new example experiment,
HalfDomeDemo.pxp, in Examples:Feature Demos.
Examples
The Trace Graph demo experiment (in the
Examples:Techniques folder) was modified to work on Windows
by the conversion of its sample graphic to PNG.
The new PSD Demo experiment (in the Examples:Analysis
folder) contains an exhaustive explanation of how the Power
Spectral Density (PSD) is computed, and sample data with
which to test the algorithm.
The new HalfDomeDemo (in the Examples:Feature Demos
folder) demonstrates the GISLoadWave XOP by loading
elevation and hydrography data for a portion of Yosemite
National Park and making a map in a graph window.
Update
4.06A
Igor Application
To install the "Carbon"
version of Igor, you will need your serial number
and activation key.
Fixed bug in random number generator initialization that
caused the same sequence to be generated every time Igor
started up. See SetRandomSeed.
All-at-once fitting functions now work properly with a
data mask wave and with a weighting wave containing zero
values.
FindRoots/P (which finds roots of a polynomial) no longer
creates the unneeded W_Roots wave.
MACINTOSH (Carbon only): Fixed problems with text
submenus in the Drawing Environment Pop-Up Menu and Graph
Pop-up Menus not displaying promptly.
MACINTOSH (Carbon only): Choosing Select All in a table
caused a crash. This bug was introduced in version 4.06 and
fixed in 4.06A.
Procedures
Modified the WMMenus procedure file to check our web site
for updates to only the currently running version of Igor.
Also added the "Delete XY Points" package to the Data
menu.
Modified the New Polar Graphs procedure files to add a
programmatic interface, fix a bug with Left radius axes
orientation, added an angle multiplier for angle axes labels
(to print a value proportional to the angle instead of
printing the angle).
Modified Axis Utilities to no longer require obsolete
"Strings as Lists" include file, added AxisForTrace() and
AxisUnitsInGraph().
XOPs
MACINTOSH: An XOP named NIGPIB_OSX.xop is now shipping in
the Carbon Extensions and Support:More Extensions:Data
Acquisition folder. This is for use on Mac OS X only. As of
this writing, National Instruments supports only the
GPIB-ENET/100 hardware on Mac OS X.
Update
4.06
Igor Application
To install the "Carbon"
version of Igor, you will need your serial number
and activation key.
Prevented polygon tool from drawing into
wrong window and fixed a crash if SetDrawLayer/K is issued
while a polygon was active.
Improved action of balloon help when
user controls overlap (mainly to fix TabControl).
Changed ListBox when in edit on single
click mode to also select the cell.
Changed KillWaves/Z in a user function
to not zap a wave reference if the wave it holds was not
actually killed. Also changed WaveExists to better detect
killed waves.
Creating movies now uses 32 bit color
rather than 16 bits (but screen depth may still limit
quality).
On Windows only, improved movie error
reporting.
Added new immediate play feature to
PlaySound using a modification of the existing /A flag. The
flag can now take an optional argument:
- /A=0 same as no /A
- /A=1 same as /A
- /A=2 stop playing any current sound before starting
this one
In a curve fit with constraints, if the
initial guesses were better than the first attempted
iteration, the bad iteration was accepted as a good
iteration. See Fitting with Constraints.
If the special curve fit variable V_tol
is created and set to a value other than the default, and
then V_tol is removed, polynomial curve fits now revert to
the default value of V_tol.
If an XY wave pair was removed from a
graph, CheckDisplayed indicated that the X wave was still
displayed in the graph.
A date-time axis now ignores the
autoscale from zero setting.
Fixed a crash if Confidence Bands were
selected for an all-at-once fit function. It now returns an
error message.
Fixed crash when calling SoundInStatus
from a function invoked at experiment load time.
Fixed crash that occured when removing
more than one residual trace with a single RemoveFromGraph
command. The crash was observed with Carbon Igor on Mac OS
X; the bug was asymptomatic with Classic Igor on Mac OS 9,
and on Windows.
CtrlFIFO operation does sanity checks on
FIFO size to prevent crashes in certain cases.
In the Modify Axis dialog, if Multiple
Selection dialog is cancelled, the previous axis selection
is now restored in the Select Axis menu.
The recreation command for a ColorScale
in a graph failed to restore the position properly if the
ColorScale was created with /A=RT. This affected the dialog,
too.
MACINTOSH (Carbon only): Fixed bug that
prevented sprintf with refnum of zero from working with
AppleEvents.
MACINTOSH: Fixed potential crash
(especially on OS X) when user hook functions kill windows.
Related topic: Functions (User-Defined Hook Functions).
MACINTOSH: Fixed potential crash on OS X
when editing a procedure file that added a submenu which
defined keyboard equivalents. Related topic: User-Defined
Menus.
MACINTOSH: Fixed a problem with
SaveNotebook/S=1 in the Carbon version only. If the notebook
was never saved, it was displaying a dialog even if a path
and file name was specified.
In the dialog that the LoadWave
operation presents for you to enter wave names, if you press
the shift key while clicking the Skip Column button, it will
skip all columns other than the selected column.
Fixed a problem relating to display of
fractional seconds in tables with a small number of
digits.
Fixed crash that occurred when calling
GetMacroList just after a procedure window is killed.
MACINTOSH: Fixed fairly rare crash
involving graph drawing. If you have been told to use
SetIgorOption ImageDraw,allowFastEraseRect=0, you should no
longer need this work-around now.
MACINTOSH: Fixed a problem in the Carbon
version only having to do with saving unpacked experiments
containing data folders containing waves. If, after the
first save of the experiment, you did another save without
closing and opening the experiment, Igor sometimes wrote the
experiment recreation file using erroneous wave file names,
resulting in errors when you next opened the experiment.
Related topic: Saving Experiments.
If you rename a data folder and then
saved as an unpacked experiment, Igor did not write the
waves in the renamed data folder to the new corresponding
disk folder. This has been corrected. Note however that
renaming a data folder in an unpacked experiment creates an
orphan disk folder which Igor will not delete. You can
delete it manually if you wish.
Renaming a data folder will now mark the
experiment as modified.
MACINTOSH: Fixed copy and cut in
SetVariable controls on OS X.
Fixed the scaling of center Latitude in
the Project operation from radians to degrees.
MACINTOSH: Fixed bug in the Carbon
version that prevented cmd-option-M (display next procedure
window) and shift-cmd-option-M (hide current and display
next procedure window) from working.
WINDOWS: Fixed a bug in ImageSave that
affected saving TIFF files in depth other than 16
bits/pixel.
MACINTOSH: Igor Pro Carbon will now
detect old experiment files (saved with Igor Pro 3.02 or
earlier) that contain multiple pictures and will report an
error rather than opening them. These files can not be
opened with Igor Pro Carbon. You must first open them with
pre-Carbon Igor Pro to fix a problem in the way the file was
written. For details, see This experiment can not be loaded
in Carbon Igor because of duplicate resources.
Procedures
Modified the Waves Average procedure
file to handle waves of different lengths and waves
containing NaNs.
Enhanced the Global Fit procedure to
allow the selection of a mask wave for each data set. This
allows fitting a subset of points in each data set.
Fixed a bug in Global Fit that caused
the wrong X wave to be selected if two different waves with
the same name were displayed in a graph and the All From
Target button is clicked.
Fixed bug in Data Mask for Fit procedure
file that prevented it from working properly with
liberally-named graph traces.
Fixed bugs in Percentile and Box Plot
procedure file: outliers can now be displayed on a category
box plot; a column in the raw data for a box plot will no
longer cause an infinite loop; if the Modify Box Plot panel
is already in existence, selecting Modify Box Plot in the
Graph menu will bring the panel to the front.
ControlBarManagerProcs now makes the
divider line extend the full width of a graph's control bar
on Windows OS, too.
ProcedureBrowser uses a Source checkbox
rather than a button. The result is that the source code
notebook auto-updates when a procedure is selected in the
list.
SaveRestoreWindowCoords auto-compensates
for a panel-positioning problem on Windows.
AxisSlider now makes the added slider
extend the full width of a graph's control bar on Windows
OS, too.
Drag Spline and Make Sample Data
procedure files have been updated to use the
ControlBarManagerProcs procedures to handle conflicts in a
graph's control bar.
Image Particle Panel.ipf has been
changed to remove the cross-cursor when the overlay is
removed and now correctly identify the last particle using
the cross-cursor.
Power Spectral Density.ipf has a new
NormalizedPSD macro which replaces the old PSD macro (now
demoted to a Proc which you can still call it from your
existing code). The output of NormalizedPSD is normalized so
that an input signal of A*cos(2*pi*f*t) results in an output
value of A*A in the bin associated with frequency f.
NormalizedPSD can optionally remove the DC component. Also,
a bug in handling the Nyquist frequency was fixed: the
highest frequency (Nyquist) component was twice as big as it
should have been. Since it is usually nearly zero anyway,
the effect of the bug was minimal.
Examples
Modified "Global Fit Demo.pxp" to add
notes about the new data set masking capability (see
Procedures, above).
Added "Audio Snarfer.pxp" experiment
(Movies & Audio:Sound Input) which may be useful for
long term recording of audio.
Added "Cursors Move Together" demo
experiment in the Techniques folder. This modification of
the Cross Hair Demo preserves an X or X and Y offset between
the two cursors, even when one is manually dragged to a new
location.
Added Extensible Tab Panel Demo in the
Examples:Programming folder. This shows a technique for
dynamically adding tabs to a tabbed control panel.
XOPs
The neural net XOP "NeuralNetworker" has
been updated. New features added to the training and running
operations. See the new help file for more details. Help
topic: NeuralNetworker XOP.
Updated the HDF Loader XOP and ported it
to Carbon. Fixed bugs involving loading of images and
palettes. Revised HDF Loader Help file. The Macintosh HDF
Loader is still based on HDF version 3.3 libraries, not 4.0.
If you try to load 4.0 files, (especially SDS), it may
crash. The Windows version is based on HDF 4 libraries.
Fixed Macintosh-only Find Peak XOP bugs
that occasionally crash Igor on Mac OS X.
Updated the Gizmo help files.
Technical Notes
Updated Igor Pro Tech Notes:TN020 Peak
Measurement:TN020 Procedures.ipf to fix problems with manual
peak identification using cursors.
Update
4.05A
Igor Application
To install the "Carbon"
version of Igor, you will need your serial number
and activation key.
Fixed a bug in Curve Fit dialog that prevented XFUNC
all-at-once fitting functions from appearing in the Function
menu.
Fixed a bug in the Curve Fit dialog that could cause a
crash if you try to edit a fit function using the Edit Fit
Function dialog at a time when procedures cannot be
compiled. You still can't edit them, but at least it doesn't
crash!
(Windows only) Fixed a bug (introduced in 4.05) with
NewPanel when /W is used (which is almost always): the panel
size was being limited to too small a value and the panel
was not displayed in the right location if it was close to
the right or bottom of the MDI frame. The problem was worse
if Large Fonts were used.
(Windows only) Fixed a bug that could cause Igor to close
Igor Procedures files by mistake if you opened an experiment
that used an XOP that added a window to Igor (e.g.,
VDT).
Procedures
Remove Tags, when removing only offscreen tags, now also
removes tags whose y attachment value is above or below the
vertical (usually left) axis range.
Revised GraphMagnifier.ipf to avoid controls already
present in a graph's control bar.
Revised AxisSlider.ipf to more intelligently restore the
control bar in a graph when the axis slider is removed.
Added ControlBarManagerProcs.ipf to WaveMetrics
Procedures:Utilities. Provides some functions to help a
procedure that adds controls to a graph be a good controlbar
citizen.
Update
4.05
Igor 4.05 was the first version of
Igor that runs "natively" on Mac OS X. Owners of Igor 4.0 or
later can update for free to this "Carbon"
version of Igor by using the universal
or standalone updaters. You will need your serial
number and activation key to install Igor Pro
Carbon.
Igor Application
Added a new operation, MarkPerfTestTime.
This is an aid for programmers who wish find out where their
programs are spending the most time. This operation is used
in conjunction with SetIgorOption debugTimer. Instructions
for use can be found in a new example experiment,
PerformanceTesting.pxp.
Added code to suppress the wait cursor
when a graph is updating until the update has taken a half
second or more. This is to prevent cursor filcker when
graphs are updating due to live data. User can change the
delay using SetIgorOption supressWaitCursor=val where val is
the delay in ticks (60 ticks to the second). This lasts only
for the life of the Igor session.
Sleep/C=-1 will not change the cursor in
any way; all other incantations will.
Changed Sort's sorting method to treat
all NaN patterns the same. Previously, negative NaNs would
sort to the opposite end as positive NaNs.
Changed Igor's parser to treat names
starting with a single quote but not ending that way as just
the single quote char itself. This causes such situations to
be properly treated as an error.
Fixed problem using user tick labels on
waterfall plot. See NewWaterfall.
New feature: ModifyGraph can now change
arrow markers to display as standard meterological wind
barbs by adding a column to the arrow marker wave and giving
it a column label of windBarb. Values are integers from 0 to
40 representing wind speeds up to 4 flags. Use positive
integers for clockwise barbs and negative for the reverse.
Use NaN to suppress the drawing. Example:
- make/O/N=50 jack= floor(x/10),jackx= mod(x,10)
- display jack vs jackx
- make/O/N=(50,3) jackbarb
- jackbarb[][0]= 40 // length of
stem
- jackbarb[][1]= 45*pi/180 // angle
(45deg)
- jackbarb[][2]= p // wind speed
code
- SetDimLabel 1,2,windBarb,jackbarb
- ModifyGraph
mode=3,arrowMarker(jack)={jackbarb,1,10,0.5,0}
- ModifyGraph margin(top)=62,margin(right)=84
Fixed potential crashing bug when
KillVariables/A is called twice.
Fixed recreation macro involving mirror
axes and image plots and another involving colors in
SetVariable controls.
Fixed problem in SetVariable where
height did not autoscale if bodyWidth was in use.
Fixed another SetVariable problem that
crashed Igor (usually on Windows) if the SetVariable had no
value assigned, KillStrings is called for a string in the
current data folder, and the SetVariable control is
updated.
Fixed recreation macro involving mirror
axes and image plots and another involving colors in
SetVariable controls.
Fixed bugs in ListBox introduced when
zero rows changed to not be an error.
Double-clicking axes, annotations, table
columns, layout objects now honors the corresponding
SetIgorMenuMode setting. For example, if Modify
Annotations... is disabled with SetIgorMenuMode,
double-clicking an annotation won't open the dialog
either.
FindPeak's /Q flag now allows FindPeak
to proceed without generating an error for a bad or
too-small input range. V_Flag now returns an Igor error code
if something went wrong rather than just setting V_Flag to
1.
FindLevel with /R set to search
backwards while smoothing with /B was smoothing the wrong
values using the new (Igor 4.02+) code. This also affected
FindLevels, EdgeStats, and PulseStats.
Made XWaveName work with category
plots.
Fixed rare and hard-to-explain problem
involving stale WAVE reference variables.
Removed an old limit on the size of the
history file in unpacked experiments. It was limited to
1,000,000 characters.
Fixed a problem whereby, if you opened
an experiment other than through the File->Open
Experiment menu item (e.g., by double-clicking or via
Execute/P LOADFILE), and if you said you did not want to
save the current experiment, and if you had modified an
auxiliary procedure file, Igor would fail to ask if you
wanted to save the auxiliary file.
Execute/P now accepts the /Q (quiet) and
/Z (no error dialog) flags.
Fixed a bug in LoadWave/B. Specifying an
explicit field width over multiple columns (e.g.,
/B="C=3,W=5;") did not work.
WaveStats wasn't setting V_maxloc and
V_minloc properly for unsigned integer types when the first
wave value was the min or max.
Fixed some problems with the debugger:
clicking the debugger stop button during a curve fit without
the progress dialog no longer crashes, the debugger stack
list no longer omits the function that called the function
that has the FuncFit call in it, attempting to edit a string
longer than 253 characters no longer crashes on Windows, and
breakpoints stranded beyond the last line can now be clicked
off.
A graph with a tag containing one of the
other dynamic escape codes such as \{pcsr(A,''Graph0'')}
would fail in window recreation macros because the cursors
weren't added to the graph until a later statement. Cursor
statements have been moved to before the annotation
statement(s).
Attempting a Tag command while a layout
is the top window no longer crashes Igor.
A window hook function (see SetWindow)
that doesn't explicitly return a value is presumed to return
0 instead of NaN. The hook function also receives a new
modified event.
Also fixed a crash that happened if you
kill the window and then create another window like it
during the kill event for the window you killed.
Fixed a crash in FuncFit that occurred
if the procedure window containing your fit function is
altered between the time FuncFit starts and when it
finishes. This can happen if you use Ctrl-Enter to execute a
FuncFit command in a procedure window.
Fixed crash in Modify Axis dialog
brought on by the following sequence: select Live Update
mode; Select Multiple Axes and select all or some subset;
de-select Live Update Mode; crash.
Fixed some minor cosmetic bugs in the
Modify Axis dialog.
Fixed a bug that could cause a crash if
you cut or copied and pasted an annotation in a page
layout.
Fixed a crash when using wfprintf from a
function and you supply a reference to a non-existent
wave.
Igor no longer stops responding when a
menu-invoked macro uses ExecuteScriptText to send an
AppleEvent or DDE event back to Igor.
SetIgorMenuMode can now enable or
disable items in the Graph menu even if the Graph menu is
not displayed in the menu bar at the time.
ImageAnalyzeParticles now creates
boundary waves for one-pixel-wide particles that are
parallel to the y-axis.
ImageLineProfile now supports wave
scaling.
ImageGenerateROIMask supports wave
scaling with a new keyword scalingWave.
IgorInfo(3) returns a collection of more
detailed information about the operating system,
localization information, and the actual file version of the
Igor executable. The keywords are "OS", "OSVERSION",
"LOCALE", and "IGORFILEVERSION":
|
Keyword
|
Information following keyword
|
|
OS
|
Description of operating
system.
On Macintosh the OS value is
"Macintosh Classic", "Macintosh Carbon", or
"Macintosh OS X".
On Windows, it is something like "Windows 95
OSR2", "Windows 98 SE", "Windows Me", "Windows NT
Personal (Build 1234)", "Windows 2000 (Build
1234)", "Windows XP (Build 1234)". Of course, the
actual build number and format of the text will
vary with the operating system.
|
|
OSVERSION
|
Operating system number.
On Macintosh, this is something
like "9.1.0" or "10.1.2".
On Windows, this is something
like "4.10.1998".
|
|
LOCALE
|
Country for which this version of Igor is
localized. "US" for most versions of Igor, "Japan"
for the Japanese versions of Igor.
|
|
IGORFILEVERSION
|
The actual version number of the Igor
application file expressed as a floating point
number. Igor 4.05, for example, returns "4.05".
Igor 4.05A will return "4.051" on Windows but
"4.06" on Macintosh (because the actual Macintosh
file version will be 4.06b1 and the beta part is
trimmed off).
|
New (preliminary) feature:
GetRTStackInfo(0) returns a semicolon-separated list of the
names of the macros and functions currently in execution,
with the name of currently running macro or function last in
the list. Absolutely useless on the command line.
MACINTOSH: FindPeak, Smooth, UnWrap (and
some other analysis routines I don't remember) were made
faster by not always moving the entire wave to the best part
of the memory partition. The speed improvement can be
startling for large waves.
WINDOWS: Fixed hang with minimized
windows.
WINDOWS: Using MoveWindow to position a
panel at the top of Igor's frame resulted in the panel being
positioned many pixels lower than requested. The error was
larger when window title bars were made larger in the
Display Properties control panel's Appearance tab. Fixed a
similar bug in AutoPositionWindow.
WINDOWS: added ability to specify a
literal file name extension in the /T flag of the Open
operation. That is, Open/T=".dat" myref will cause the
resulting Open File dialog to show all files with file name
extension ".dat". NOTE that the extension MUST have three
characters.
WINDOWS: Put in a workaround for problem
of ugly text with Windows 2000/XP ClearType feature.
WINDOWS: The limit of 31 items in
user-defined menus is handled a tiny bit better: rather than
setting the menu item to a non-functional "More..." it is
set to "_too many items_" and is disabled.
WINDOWS: Fixed a bug that caused text
areas in dialogs to be invisible if the Igor frame window
was not maximized.
Fixed a bug in ImageLoad which could
cause errors when reading a packedbits compressed TIFF
file.
WINDOWS: Fixed memory leak if a
minimized window was the active window.
XOPs
Added a beta version of Gizmo, an OpenGL
visualization tool. This is available under Windows and the
Carbon version of Macintosh Igor but is not available for
classic Macintosh Igor. Example experiments were also
added.
The JCAMPLoadWave XOP has been revised
to properly handle files with multiple data sets.
Fixed a bug in the IGOR Graphical Slicer
that affected the reading of values using the eyedrop
tool.
Fixed a minor problem in the Data
Browser XOP's Browse Experiment feature. If you clicked a
wave which had a dependency formula while the info or plot
panes was displayed, a harmless error message was displayed
in the history area.
Fixed a bug in the Data Browser's Browse
Expt feature which caused it to fail if you tried to browse
a folder that contained an alias/shortcut to a data
file.
Fixed a bug in the IGOR Surface Plotter
cloud mode that under some rotations flipped x and y
axes.
MACINTOSH: the SndLoadWave XOP now
displays files with types WAVE, MPEG, and MPG3 in the open
file dialog.
WINDOWS: Fixed a bug in the Data Browser
that would crash on Windows on using the Find dialog. Also
fixed a bug on Windows where a line in a wave note (after a
CR) was displayed in bold face.
WINDOWS: the LoadWAVFile XOP no longer
crashes when using /R to load a subset of a stereo sound
file.
MACINTOSH: Fixed a Macintosh-only bug in
MLLoadWave that caused an error if you tried to skip
variables or strings when loading a Matlab 4 file without
having the Mathworks libraries installed.
Procedures
A new WaveMetrics procedure file,
AxisSlider.ipf, makes it easy to scroll through long
records. This procedure can be easily accessed via the
Packages item in the Graph menu.
A new WaveMetrics procedure file,
PerformanceTestReport.ipf, provides support for the new
performance testing operation, MarkPerfTestTime. For
details, see comments in the procedure file and the new
example experiment, PerformanceTesting.pxp.
Sonogram.ipf implements the Gabor
spectrogram (aka the "Gaussian Weighted Wigner
Transform").
TransformAxis.ipf has been revised again
to improve the handling of transforms with high curvature at
the ends (specifically aimed at the probability transform).
Also significant changes were made to the control panels to
improve the ease of use.
A new WaveMetrics procedure file,
SaveTable.ipf, allows you to save a table, including its
data and formatting, to an Igor Text file. You can then load
the table and its data into another experiment. For details,
see comments in the procedure file.
Modified ImageLineProfile.ipf to account
for a factor of 2 in the width of the calculated profile
when using the Line Profile panel.
Examples
A folder of example experiments for the
new Gizmo XOP was added in the Visualization folder.
New example experiment,
PerformanceTesting.pxp, provides documentation for
MarkPerfTestTime and the PerformanceTestReport.ipf procedure
file.
The Sonogram Demo implements the Gabor
spectrogram.
Update
4.04
Igor Application
The SetVariable operation can now attach
to a point in a wave as an alternative to a variable. The
syntax is the same but with a wave name in place of a
variable name and with the point number specified using
standard bracket notation with either a numeric point number
or a row label, e.g., value=awave[4] or
value=awave[%alabel]
Fixed crash when an image with number of
rows between 8192 and 32768 was displayed in a graph.
Secs2Date has new -1 format code which
results in a string that is independent of the operating
system and the Date & Time control panel.
Added new activate keyword to the
SetVariable operation.
Adjusted position of ListBox's title
divider line by 1 pixel and, for Windows only, fixed
incorrect coloring of same.
The GroupBox's interior is correctly
updated when drawn outside of the graph's control bar
area.
The ControlInfo operation accepts a new
kwSelectedControl keyword that sets S_Value to the name of
the selected (active) control.
Added new SetMarquee operation.
GetMarquee's V_marquee global has a new
bit flag that causes S_marqueeWin to be updated when the
marquee is created or killed.
Fixed a bug in the Macintosh version of
the JPEGQ method of ImageTransform. If the version of
QuickTime on your machine did not support this feature, it
could cause a crash.
(Windows-only) Fixed a problem that
caused Igor to take a very long time to open help and
procedure files that were already open for writing. This was
evident only if you launched more than one copy of Igor or
if you shared help or procedure files over a network. The
problem was introduced in 4.03 which included a workaround
for another problem. The other problem was that some users
got the error message "File Already Open" when saving an
experiment to a network volume. We suspect that this is
caused by Norton anti-virus software. The workaround added
in 4.03 is still in 4.04, but it is smarter so as not to
interfere with normal operations.
(Windows-only) Added a workaround for
the problem of Symbol font not rotating.
(Windows-only) A marqueed graphic copied
from a layout is now drawn only within its bounds when it is
pasted into a drawing layer.
Fixed bug in Curve Fit dialog: Duplicate
commands failed to properly quote liberal source wave names.
See Liberal Object Names.
Fixed mouseup, mousedown, mousemoved
events in hook function for PageLayouts, and replaced the
copy event with a more general menu event (see
SetWindow).
Fixed a bug that caused Igor to report
an error when opening an experiment containing a hidden
notebook to which a hook function had been attached using
the SetWindow operation. In some cases, Igor would attach
the function to a window other than the hidden notebook. The
bug fix is in the code that saves the experiment, so
existing experiments with this rare problem will have to be
fixed manually by opening the experiment, reassigning the
hook to the notebook(s), and saving the experiment.
Fixed a bug (or missing feature):
SetIgorMenuMode and DoIgorMenu would not compile string
expressions or string constants for the various
parameters.
Fixed a bug in ImageLoad where the
operation printed information about unsupported TIFF tags in
the history despite the /Q flag.
Added to ImageLoad support for
uncompressed 48-bit TIFF images.
Fixed AppendLayoutObject. It was
incorrectly accepting a null object ($"") which could lead
to a crash.
Added keyword scalingWave to
ImageBoundaryToMask in order to support wave scaling.
Fixed a potential crash in LoadWave/F if
the number of columns specified in the /B flag exceeded the
number of columns specified in the /F flag.
Added additional bits to V_FitError to
report out of memory and fit function returned NaN or INF
error conditions from a curve fit.
Fixed bug in Curve Fit dialog that could
prevent using the Graph Now button with a built-in fit
function.
ImageRemoveBackground/O now retains
original wave scaling.
Fixed a bug that affected the ImageLoad
operation on the PC.
XOPs
(Macintosh only) the SndLoadWave XOP has
can load WAVE, MP3, and movie audio tracks.
Examples
Added the new MD Root Finder Demo
experiment, promised in the Using Igor manual in the
Analysis chapter, Finding Function Roots section, subsection
Roots of a System of Multidimensional Nonlinear Functions
(in the Examples:Analysis folder).
Added new Sonogram Demo example
experiment (in the Movies & Audio folder). It displays a
sonogram of already-acquired (non-realtime) data.
Changed Web Page Demo to use a new user
account when doing FTP upload.
Procedures
ProcedureBrowser.ipf now has a Copy
Template button. Including <ProcedureBrowser> will
create a Procedure Browser menu item in the Misc menu.
New procedure file:
DrawEllipseOnGraph.ipf. Allows you to draw and edit ellipses
with axes that are other than horizontal or vertical.
New procedure file: Sonogram.ipf. It
provides a panel to select a time-series wave to compute the
sonogram of. See the new Sonogram Demo experiment for
documenation.
Revised WMMenus.ipf to add the Sonogram
package to the Windows:New:Packages menu.
Fixed a bug in Image Line Profile
procedure that created multiple nested data folders when
dragging the profile line across the image.
Revised Transform Axis package to fix
bugs and improve the ticking algorithm.
Revised Decimation.ipf to correctly
X-scale the decimated result wave.
Technical Notes
Added a guest technical note PTN006
"Using IGOR's Particle Analysis Feature for turning scanned
data into IGOR Waves" by Clemens Kühn.
Update
4.03
Igor Application
Fixed a one pixel offset bug in
ImageGenerateROIMask.
Fixed a bug in AppendXYZContour. Now any
triplets with X and Y infinite values are ignored.
Fixed a bug in BinarySearch where it
returned the wrong index when the data was in decreasing
order.
Added new features to the
stopMSTimer(timer) function. If timer is -2, return
microseconds since system startup. If timer is -1, returns
frequency of timebase clock (which determines the
resolution). Note: On Macintosh, the first call to
stopMSTimer after Igor is started will take an extra long
time (0.1sec) in order to calibrate the clock. This can also
be done by calling stopMSTimer with a value of -1. Also,
these changes to the microsecond timer allow it to work when
running in emulation under MacOS X.
Increased maximum size of a wave from
134 million points to as much as 2147 million depending on
data type. Data size is limited to 2.147GBytes rather than a
strict limit on the number of points.
Increased limits for marker size and
thickness by a factor of 10.
Fixed bug where opaque markers would not
appear correctly in legends.
Added new /R flag to IFFT to force real
result when power-of-2 size would automatically give complex
result.
SavePICT has new /Z flag (proceed on
error) and V_Flag output variable (0 or error code).
SetWindow updated to describe new copy
event and hookevent bit flags.
Added the GetScrapText function and
PutScrapText operation.
New DoIgorMenu operation invokes Igor's
menu items. Use wisely.
(Windows only) Fixed problem with
colorscales in layouts when using EPSF export.
Fixed readout of free cursors when using
log axes.
Fixed crash on Windows reloading with
minimized waterfall plot.
Fixed rare crash involving
AppendToGraph/Q and image plot.
Fixed a problem with Histogram/B=1. When
the data being histogrammed wasn't floating point, the
automatic bin calculation failed to include values equal to
the maximum in the last bin.
Eliminated New Fit Function dialog
insistence on having a space before and after the equals
sign in the "f(x) =" in the fit expression.
Fixed a bug in Curve Fit dialog: if an
XFUNC was selected as the fitting function, the X wave
wasn't included in the generated command.
Fixed a bug in IntegrateODE that could
result in the message "UpdtDisplay: recursion attempted"
being printed in the history many times if IntegrateODE was
used in a curve fitting function.
Added tests to all matrix operations
that would reject input waves that contain either NaNs or
INFs.
Fixed a problem in the Japanese version
of Igor only which prevented the user from changing the
current drawing layer by using the drawing layer popup
menu.
Fixed a bug in the sscanf operation that
resulted in incorrect output if you used a maximum field
width with the e, f, or g conversion types (e.g.,
"%5f").
The documentation for sscanf said that
it does not tolerate an 'l' after the '%' character, but in
reality, it did tolerate "%le", "%lf", and "%lg". It no
longer tolerates the 'l'.
Fixed a rare bug in the Curve Fitting
dialog in which an empty assignment to the T_Constraint wave
could be generated under certain circumstances.
Fixed AxisInfo so that the font(x)
keyword in the RECREATION string quotes the name of the
font. This is required to pass a font name with spaces to
the Execute command as documented in the Igor Reference for
the AxisInfo function. NOTE: if your procedures parse this
string, they will now have to look for quotes!
Fixed crash in New Fit Function dialog
if the fit expression was longer than 400 characters.
It is now impossible to enter illegal
dimension labels in a table.
FindLevel, FindLevels, EdgeStats, and
PulseStats now ignore any (possibly smoothed) NaN value.
Procedures
CmplxToMagPhase.ipf's FFTCmplxToMagPhase
correctly scales FFT results, has a non-FFT version named
CmplxToMagPhase.
Fixed a problem in New Polar Graphs.ipf
that occurred after a user renamed a polar graph window and
then clicked "New Polar Graph".
Added the new Bivariate Histogram 2.ipf
procedure file. It calculates a bivariate histogram with
equally-space bins in X and Y, log-spaced bins, or bins with
arbitrary spacing specified by a wave.
XOPs
Bug fix for Wavelet XOP (PC version
only) where dialog would generate garbage for the number of
coefficients of Coifman wavelets.
Technical Notes
PTN001 has been updated to note that the
technique described is obsolete, since it can be done much
more easily using all-at-once fit functions.
Update
4.02A
Igor Application
Fixed a problem that caused large PNG
graphics in notebooks to be corrupted in certain
circumstances. The corruption occurred if you opened a
notebook on a platform (Macintosh or Windows) other than the
platform on which it was created and if the notebook
contained PNG graphics larger than 51200 bytes and you saved
the notebook on the new platform.
Differentiate and Integrate could crash
on either Mac or PC if fewer than two points were in the
wave. Igor is now protects itself against this by returning
an error for waves with no points and by handling waves with
one point correctly.
ControlInfo wasn't computing V_Top
correctly: it was returning the (negative) offset from the
bottom of the control bar rather than the positive offset
from the top of the control area.
(Windows-only) Fixed a bug that was
introduced in 4.02. It caused an error if you tried to
create symbolic paths that point to the root directory
(e.g., "C:").
Igor Help Files
Fixed the Windows version of the Image
Processing help file. It contained corrupted PNG
graphics.
Procedures
Append Calibrator.ipf displays a panel
that creates calibrators (scale bars), instead of the
outdated missing parameter dialog.
Update
4.02
Igor Application
Point-scaled traces on log axes with an
x offset applied were, on rare occasions, offset by the
wrong amount.
Fixed bugs in several image processing
routines (ImageLineProfile, ImageAnalyzeParticles,
SphericalTriangulate, and ImageRotate) which could result in
wrong outputs or even a crash.
(Windows only) Fixed bug where the
cursor info box in a graph that also had a control panel
area would not function properly until the graph was
resized.
FindLevel, FindLevels, and PulseStats no
longer use cumulative sliding averages, which makes them
more accurate, but a bit slower. To use the algorithm used
in earlier versions of Igor, assign Variable/G
root:V_UseOldFindLevel=1.
(Windows only) Fixed bug where markers
would be displaced in EPS export of a page layout containing
a legend.
Fixed bug where printf "%08X\r",
0xffff0000 would give wrong results in a function.
Smooth/B inf waveName crashed Igor, now
num is limited to about 67 million and doesn't crash.
FindPeak has new /I flag useful for
finding impulse peaks.
ImageStats/R now returns correct values
for V_sdev, V_adev, and V_rms.
FunctionList("*",";","KIND:1") now
returns all built-in function names again, not just the
first 25.
(Windows only) Fixed bug: 10^NaN
returned 1.0; cmplx(1,0)^NaN returned (1,0).
After SetRandomSeed, gnoise() was
returning one of two cached values. Igor now clears the
cached value when SetRandomSeed is called so that you get
the same value every time after SetRandomSeed is called with
a particular value.
Fixed memory leak that occurred when
doing curve fits with constraints.
Increased the number of digits printed
in graph recreation macros for the crossing position of a
free axis attached to another axis. This was done to
accommodate the case where an axis is attached to a
date/time axis.
Added an option for curve fitting: set
bit 3 (value of 8) in V_fitOptions to get a matrix wave
M_iterates. This matrix contains the values of the fit
coefficients at each iteration. The matrix has a row for
each iteration and a column for each fit coefficient. The
last column contains the value of chi square for each
iteration.
Added new /E flag to Redimension:
/E=e e=0 for no special action (default),
e=1 to force reshape without converting
or moving data,
e=2 to also perform endian swap.
(See FBinRead for a discussion of
endian byte ordering.)
Added new keywords for PlayMovie
Action:
gotoBeginning moves movie to beginning
gotoEnd moves movie to end
step=s moves movie by s frames (0 is same as 1, neg
goes backwards)
getTime reads current movie time into variable V_Value
(in seconds)
extract=e with optional e parameter, extracts e frames
in to a single mult-frame wave named M_MovieChunk.
This will have 3 planes for R, G & B and will
have e chunks.
Operations are performed in the
following order:
- kill, stop, gotoBeginning, gotoEnd, frame, step,
getTime, extract, start.
- kill overrides all others
Example, determine number of frames in a
simple movie:
PlayMovie
PlayMovieAction stop,gotoEnd,getTime
Variable tend= V_Value
PlayMovieAction step=-1,getTime
Print "frames= ",tend/(tend-V_value)
PlayMovieAction kill
Fixed bug in image display for
multi-plane RGB images.
The FTPDownload operation sets
S_FileName to the full path of the downloaded file. This is
especially useful when the /I (interactive) flag is
used.
(Windows-only) Fixed a problem that
caused Igor to fail to recognize when you changed a page
layout to landscape orientation when using the HP DeskJet
840 printer driver.
Fixed bug in New Fit Function dialog: if
an independent variable was named "w", incorrect function
code was generated and a hang resulted when the dialog tried
to parse the incorrect code.
(Windows-only) Fixed bug that caused
curve fitting on Windows to ignore NaN's in the weighting
wave. That behavior is not correct- NaN's in the weighting
wave probably result from a bad calculation, and you should
investigate the cause. A case in point is weighting
proportional to the square root of the data values- a NaN
will result if the data are negative. Square root weighting
is only appropriate if the values are always positive.
Multiple Submenu definitions can now add
items to a single submenu. Previously, each Submenu
definition created a new submenu, even if this resulted in
two submenus with the same name in the same parent menu. See
User-defined Menus.
Fixed bug in Page Layout menu. It
allowed you to move the front object to the front or the
back object to the back, both of which should not have been
allowed. If you tried this, it usually crashed.
(Windows-only) the most recently defined
ruler was being omitted from the Notebook Ruler popup
menu.
(Windows-only) the Object Status dialog
would crash after displaying an object whose name was longer
than 28 characters.
(Windows-only) ImageTransform cmap2rgb
now correctly maps grayscale values that exceed the color
index wave's X scaling range to the correct color.
The Debugger no longer prints "string
too long" over and over into the history window.
Boy, is it a good thing no one tried to
use an XFUNC with FindRoots, Optimize, or IntegrateODE! It
is now possible...
Procedures
Global Fit package now supports
all-at-once fitting functions, has a checkbox to request a
covariance matrix, and lists XFUNCs in the fit function
menu.
New FITS Loader.ipf file. Now supports
multi-row BINTABLE format. Not compatible with previous
versions of the Igor application.
New WaitForFileProcs.ipf procedure file.
These procedures are useful for synchronizing with another
application. If the other application writes a file as part
of its processing, you can make sure that Igor waits for the
other application using these procedures.
See the procedure file for details on
usage.
The WMMenus.ipf procedure file now adds
a "Check Latest Igor Version" menu item to the Help menu. It
contacts the WaveMetrics web site where information about
Igor versions is published.
Scatter Plot Matrix enhanced:
- Marker selector panel selects a marker, doesn't just
show you the marker numbers.
- Options to plot with no ticks or tick labels.
- Option to make colored boxes behind each little
plot.
- Fixed bug- the current data folder was not restored
after making a scatter plot matrix.
New procedure file Rational.ipf. The
function calculates two integers whose ratio approximates
the input parameter within the specified error range.
Revised Global Fit.ipf procedure file.
Global fits now support weighting and constraints. See the
Global Fit Demo experiment for details.
Revised New Polar Graphs.ipf procedure
file. Previously it would quietly fail if the wave names
were too long or if the data folder of the input data was
too deeply nested. The new procedure works with longer names
and warns if they are too long.
XOPs
Bug fix for the Macintosh IGOR Surface
Plotter XOP: the bug would cause a crash on some computers
when specifying constant rotation from the rotation
dialog.
Changed a random number generator for
the gammanoise() function in StatFuncs XOP.
(Macintosh-only) Changed the default
wave type created by the SndLoadWave XOP from
single-precision floating point to 8-bit or 16-bit,
appropriate to the sound format.
Update
4.01A
Igor Application
The 4.01A update contains version Igor
Pro 4.02b1 on the Macintosh or Igor Pro version 4.0.1.1 on
Windows. The About Igor Pro dialog shows "4.01A".
Fixed crash in New Fit Function dialog
if code is entered before the function name is assigned.
Fixed debugger crash that happened when
stepping very rapidly out of a macro.
(Windows-only) Fixed cause of Igor
crashing when closing a window that has a hook function.
(Macintosh-only) The Annotation dialog
no longer sets the focus to the Name or Rename field all the
time.
Fixed bug that caused inaccurate display
of axis range in the Modify Axis dialog, Range tab when
manual range was set for a date/time axis.
Fixed New Fit Function dialog crash if
code was entered before the function name.
Changed error message returned when you
forget the parentheses when using a flag like
/N=(expression) in functions. It is now more explanatory,
and the Explain Error button in the error alert is
available.
Fixed assorted problems in ImageSave on
Windows having to do with how it dealt with symbolic paths
and file names.
ImageSave can save 16-bit TIFFs without
having QuickTime installed.
Added /I (interactive) flag to ImageSave
for consistency with the Save operation.
Allowed "as <filename>" syntax in
ImageSave for consistency with the Save operation
(Windows-only) The MoveWindow operation
takes a new /F flag which has no effect on Macintosh, but on
Windows moves the Igor window
ÄúframeÄù (the entire
applicationÄôs window). Also, when the
left, top, right, bottom coordinates are 2,2,2,2 (points),
the designated window is maximized. On the Macintosh
maximizing a window has no effect.
Fixed possible crash in a function when
ModifyGraph height={perUnit, hh, axisname} is used and
axisname does not exist on the graph.
The ^ (exponentiation) operator now
works with complex numbers.
Added /B flag to ImageAnalyzeParticles.
The flag erases a frame (1-pixel wide) around the image
before processing. It does not affect the source wave.
Fixed a memory leak in Curve Fit that
affected only polynomial fits. Especially on Macintosh,
caused a severe slow-down if you do hundreds of fits in a
row.
A tag dragged far away from an
off-screen attachment point now stays where it was dragged
when the experiment is reopened. Consequently, Tag /X and /Y
ranges have been extended to +/- 32000 (%).
Igor Help Files
Change Igor Reference help file entry
for the FindRoots operation to reflect the actual syntax of
the operation.
Update
4.01
Igor Application
The ModifyGraph mantick keyword for a
date/time axis now honors the digitsrt setting. See
ModifyGraph for Axes for details.
Date/Time axes now support fractional
seconds in both automatic and computed manual modes.
Modify Axis Dialog: handling of the
input format menus in the Auto/Man Ticks tab, Computed
Manual Ticks area for date/time axes, and in the Axis Range
tab, Manual Scaling area has been improved and
bug-fixed.
The Modify Axis dialog, Auto/Man Ticks
tab, Computed Manual Ticks for a date/time axis now allows
entry of a fractional number for the tick increment.
Fixed bug in the Optimize operation.
When finding a maximum of a multidimensional function, V_max
was the negative of the appropriate value.
(Windows-only) The ImageLoad operation
no longer passes off loading of TIFFs to QuickTime if the
file is readonly.
Extensions
Data Browser XOP now allows setting real
and complex variables to NaN.
Procedures
New cubicQuartic.ipf procedure file for
solving cubic and quartic equations.
Update
4.0A
Igor Installer
(Windows-only). The .pxt extension is
now registered. The CD now locates an installed Igor 4 and
won't try to install again. The registry entries under the
key <HKEY_LOCAL_MACHINE>
\Software\Microsoft\Windows\CurrentVersion\App
Paths\Igor.exe are no longer missing.
Igor Application
The 4.0A update contains version Igor
Pro 4.01b1 on the Macintosh or Igor Pro version 4.0.0.1 on
Windows.
MatrixMultiply now has a new /F flag to
force the calculation to use floating point instead of
double precision values. This flag was added to reduce
memory requirements for large matrix multiplication.
Fixed crash when a user checkbox kills
its host window.
Fixed crash in compiled Igor code if
curve fit constraint wave was not a text wave.
Fixed rare crash involving confidence
bands in error bar mode.
Made SetIgorMenuMode re-enable all menu
items when a new experiment is opened. Added some new
version 4 menu items that had been forgotten.
The Example Experiments menu item was
moved to before the Quit (Mac) or Exit (Windows) menu
item.
IntegrateODE/Q wasn't parsed correctly;
required /Q=1, now /Q alone is accepted.
Fixed CurveFit bug: if first X value in
a data set was NaN, the autodestination wave X scaling was
set to NaN.
Use of \Znn in a ColorScale's user tick
label or axis label no longer prints too small.
Tick marks no longer draw beyond the
ends of the color box.
The debugger no longer stops at
breakpoints if the stop button has been pushed.
The debugger remembers its position even
if Igor was opened and closed without using the
debugger.
(Windows-only) The debugger no longer
scrolls the source text back to the currently executing line
when the mouse is released after dragging a selection in the
source pane to scroll up or down.
(Windows-only) Fixed crash due to
improper de-allocation of memory in Poly2D fit function.
(Windows-only) Igor registers the .pxt
extension that the 4.0 installer forgot, and also updates
the registry so that the Igor 4.0 CD installer won't try to
reinstall Igor when the CD is inserted.
(Macintosh-only). Clicking on the menu
after BuildMenu has been called no longer leaves the beach
ball cursor operative when selecting menu items.
(Macintosh-only). The Debugger, the
Procedure Browser, and the DisplayProcedure operation no
longer scramble the window order when showing a
procedure.
Extensions
(Macintosh-only) SndLoadWave XOP 2.1 has
been updated to correctly load only the left or right
channel of stereo sounds, and the dialog's To Clip and To
Cmd buttons now work.
(Windows-only) Data Browser fixed a
problem on Window 2000/NT when sometimes the font
specification got trashed.
Procedures
Global Fit procedure file updated to
remove obsolete /D flags on the template fitting function,
which could cause the fit to use the wrong function. Made
the template function put up an alert if the wrong function
is being used.
TransformAxis.ipf updated to fix a
problem with graphs with very long names. Took the
opportunity to tweak the ticking algorithm to make it work
better.
Changed ProcessProbabilityData.ipf to
correctly ignore NaN's in the input data.
Updated SetIgorMenuModeProc.ipf to
reflect new menu items in Igor Pro 4.
Example Experiments
Examples:Analysis:Differential Equation
Demo.pxp. Demonstrates the IntegrateODE operation and
fitting using an all-at-once fit function.
|