01/30/17 Version 4.4
12/01/16 Version 4.3
11/25/16 Version 4.2
09/19/16 Version 4.1

06/10/16 Version 4.0

12/22/15 Version 3.9
08/22/15 Version 3.8
03/03/2015 Version 3.7: 
  • Added "Paste from Spreadsheet" feature. Now you can copy from Microsoft Excel or another spreadsheet program and automatically paste rows or columns as LET commands. 
  • Added Edit menu item "Toggle Breakpoint". Changed accelerator keys of "Clear All Breakpoints" to Alt-B and used the Ctrl+B fro "Toggle Breakpoint". 
  • Added feature to READ command: Instead of just erroring out if READ can't find the specified file, it will now open a file dialog to let the user find the desired file. 
  • Removed tooltip ("Requires Flash") from the Help>Tutorials menu item. 
  • Corrected capitalization in some menu item names. 
  • Added "Go To Amazon" button to the "Make a Gift..." dialog. 
  • Moved "gettingStarted.txt" program to the ExampleProgramsFolder. 
  • Fixed bug that caused an error when a period was used to represent NaN in a literal vector. For example, vec = (1 2 . 3). 
    11/15/2014 Version 3.6: 
  • Added Preferences selection to turn on/off the caret line's light blue highlight. 
  • Made the blue highlight line transparent so it wouldn't hide a selection highlight. 
  • Modified the splash screen image. 
  • Fixed several minor bugs. 
    10/26/2014 Version 3.5:  
  • Changes to the Command/Subroutine Index (Help>Command/Subroutine Index): 
  • Added a new category, "functions", for the Subroutine Browser and the Command/Subroutine Index. 
  • Added tooltips to the index's popup menu items. 
  • Added a title to the popup menu. 
  • Made the Search button search only by keyword; made the popup menu search only by category. 
  • Made the Command/Subroutine index title bar show the keywords or the category of the most recent search. 
  • Miscellaneous changes: 
  • Now, in the editor, whatever line the insertion caret is on is automatically highlighted light blue. 
  • Also, when you switch between Edit and Debug tabs, whatever line the cursor was on in one tab, the editor in the other tab will automatically scroll to the equivalent line. This makes it easy to find your place when you switch between Edit and Debug tabs. 
  • Made auto-recovery save happen every time the user runs his program in addition to every n minutes. 
  • Corrected the Wizard Window's Tree selection for the "function" category so that it would handle the artificial function names (like INTEGER_TRUNCATE, SORT+DESCENDING, etc.) by installing the root (INTEGER< SORT) wizard. 
  • Changed word highlight color in Edit and Debug tab editors. 
  • Now disables three toolbar buttons ("mark comment", "indent selection", "wrap selection") when there is no text selection. 
  • A few bug fixes. 
    8/30/2014 Version 3.1:  
  • Changes to the Command/Subroutine Index (Help>Command/Subroutine Index): 
  • Added a category popup menu. 
  • Made the names of the commands bold. 
  • Suppressed listing of the subroutines that are categorized as "hide". 
  • Added F3 shortcut to open the index. 
  • Allowed quotes to specify exact match for multiple keywords. 
  • Changes to the subroutine library (lib) 
  • Corrected comments in subroutine DEBUG_IF. 
  • Added error checking (DEBUG commands) to CHOOSETEST, CHOOSEWEEDTEST and CHOOSETAGSTEST subroutines. 
  • Added subroutines: SEARCH_BINARY_DESC and IS_ASCENDING. 
  • Miscellaneous: 
  • Added "Copy" menu item to the Subroutine Browser's popup menu. 
  • Added predefined internal named constants "true" and "false". 
  • The "Edit>Include Lib File(s)..." menu item now allows multiple selection and can be invoded by the Ctrl-U keyboard shortcut. 
  • Now when the caret is in a function (such as SIN or INTEGER_ROUND) inside a LET command, the help bars show the syntax and description of the function instead of that of the LET command.  
    7/15/2014 Version 3.0:  
  • Replaced Help>Command Summary with Help>Command/Subroutine Index that allows searching the combined list of commands and subroutines for a keyword. 
  • Added COVARIANCE subroutine. 
  • Added EXITQ subroutine 
  • Improved behavior of the debugger on stepping through subroutine entry (NEWCMD) and exit (END) statements. 
  • Debugger now steps through LET commands in a single step. 
  • Allow breakpoints on NEWCMD command lines. 
  • Disallow breakpoints on DECLARE command lines. 
  • Fixed Bug: Selecting a subroutine from the edit menu or popup now brings up the subroutine browser if the latter is minimized. 
  • Fixed Bug: During debug, at a breakpoint on a LET command line, clicking on the "Resume at full speed" toolbar button now resumes at full speed instead of stepping through the terms of the LET command. 
  • Other minor bug fixes. 
  • Updated the Introductory Text (Help>Introductory Text (PDF)) to include all subroutines in the lib directory. 
    5/30/2014 Version 2.9:  
  • Added autoSave feature.  
  • Made Help button on Preferences dialog bring up the help specific to the selected  preferences tab. 
  • Revised the FIBONACCI subroutine to make it easier to understand.  
  • Updated Doc for EXEC and HISTOGRAMDATA commands.  
  • Corrected wording of some tooltips. 
  • Bug Fix: After a user program runs, the Save toolbar icon and the Save menu item now  regain the enabled/disabled state they had before the run. 
    5/10/2013 Version 2.8:  
    Changes to Subroutine Browser: 
  • Fixed the double-click behavior, where a double-click on a command or subroutine name or INCLUDE file path is supposed to jump to that command, subroutine or file. It would would fail with names that hade underlines, like "BETA_O1".  
  • Added a popup menu to the Subroutine Browser's code panel that will jump to a command/subroutine/INCLUDE file name that is under the mouse pointer. The menu also includes "Back" and "Forward" items.  
  • Made SubroutineBrowser update the indexes displayed in its tabs when the popup menu "Refresh List" is called and also when the subroutine directory is changed in Preferences.  
    Other changes: 
  • Removed the Amazon button.  
  • Added file path correction so that the program can be started in any directory, not just the program's home dir.  
  • Fixed handling of Auto-INCLUDE so that files in both lib and user's lib directories can be written as relative file paths.  
    Bug fixes: 
  • Made font sizes for wizard "By Category" and "By Name" lists to be set by Preferences. 
  • Also made font sizes for Wizards, Subroutine Browser, and Debug Window be set to the stored preference font size at startup. 
    4/4/2013 Version 2.7:  
  • Changed Preferences dialog to allow the user to set the directory(ies) to use for the user's subroutines and programs. 
  • Changed location of preferences file, user subroutine directory and user program directory to the user's home directory. This avoids forcing the user to change the permissions on files in the installation directory. 
  • Added an "Example Programs" menu item to the Help menu. Formerly, the example programs had to be accessed using File>Open menu. 
  • A number of small changes to the user interface. 
    6/12/2012 Version 2.6:  
    Changes to Java Version required: 
  • The Statistics101 code now requires Java version 5 or higher. 
    Changes to the user interface: 
  • Added menu item "Wizard for Command at Cursor" to the edit popup menu.  
  • Allowed F2 key to invoke Wizard for the command on the line that the cursor is on.  
  • Changed LET Wizard so it's list of "functions" will optionally display the eligible lib, lib2, and locally defined subroutines.  
  • Added tooltips to all lists and tree lists in the Subroutine Browser and the LET wizard's function list to display the description of the subroutine when the mouse pointer is paused over any Subroutine name in the list.  
  • Added gray highlight to rows in tree lists and linear lists whenever mouse pointer moves over a row. 
  • Added feature in the Subroutine Browser allowing user to double-click on an INCLUDE file path (delimited in double-quotes) to display that include file in the browser window. 
  • Added some updates to the Help doc (in GLOBAL and NEWARRAY entries).  
  • A breakpoint can now be set on a NEWARRAY command. 
  • Changed the debug presentation of array vectors that are not yet defined: "myArray(Invalid Index)" now becomes "myArray()". 
  • In Wizards that had a "Start Over" button, added a confirmation dialog ("Are you sure?").  
  • Added scrolling and mouseWheel scrolling to the Command Hint popoup Menu (Thanks to Darryl Burke for MenuScroller.java). 
    Changes to subroutines: 
  • Added ROUNDALL subroutine. 
  • Added hyberbolic trig subroutines to lib.  
  • Cleaned up the PRINT subroutines in lib file complexCommands.txt so they don't print trailing blanks before the closing parenthesis. 
    Bug Fixes: 
  • Fixed the linkage between the YAxisLabel and XAxisLabel of the HISTOGRAM command wizard so that the XAxisLabel is disabled until the YaxisLabel is selected.  
  • Fixed bug that appeared in the HISTOGRAM and HISTOGRAMPLOT commands where they displayed series titles incorrectly when the title is an array name. I.e, the array name was not shown with its actual subscripts. 
  • Fixed bug in LET cmd that flagged a syntax error for commands such as "a = b/ c * d".  
  • Fixed bug in LET cmd where it didn't recognize a "." as an NaN in a literal list.  
  • Fixed bug in LET cmd that didn't allow a "+" sign in the exponent of a number in scientific notation.  
  • Fixed bug that disallowed NaNs on right side of a multiple.  
  • Fixed bug where, during debug, the last non-array vector in a program would be ignored by the tooltip that is supposed to display its value.  
  • Fixed indentation/capitalization bug that caused failure to capitalize/decapitalize subroutine names prior to the first syntax check pass.  
  • Changed, in Preferences dialog, the name of the default resampling program folder from ".\ResamplingPrograms" to just "ResamplingPrograms" to make it work properly in unix.  
    6/12/2012 Version 2.5:  
    New Language Feature: 
  • Added Array of vectors capability, i.e., added NEWARRAY command and array subscript notation using square brackets. 
    User interface changes: 
  • Added DragNDrop of the graph tabs (Thanks to TERAI Atsuhiro, http://java-swing-tips.blogspot.com/2010/02/tabtransferhandler.html).  
  • Added double-click to access command help in the Wizard "Command:" and "Description:" windows.  
  • Changed notation in Debug Window for dummy variables: Now the dummy variable's referent is enclosed in curly braces {ref} instead of in square brackets [ref]. That is to prevent confusion with the use of square brackets for array subscripts.  
  • Added Shift-click behavior to Wizard Help button: Shift-click will open the help topic "Using Wizards".   
  • Breakpoints are now allowed on END commands and ELSEIF and ELSE commands.  
  • Added "Close Output Tabs..." item to Window menu. 
    New Toolbar features:  
  • Shift-click on indent tool buttons now indents the one-line comments.  
  • Added Alt-click option to the Reformat toolbar button and the Shift-right/left button. This option removes leading comment marks (') from a selection, reformats the selected text, then re-inserts the leading comment marks.  
    New Subroutine: 
  • Added subroutine MODE_CONTINUOUS to library.  
    Bug fixes: 
  • Fixed bug in  FindReplaceDialog.findNextMatch() that would occasionally match on end of a word when it should have only matched on a whole word.  
  • Fixed bug in ROTATE command that didn't allow using same vector for input and result.  
  • Fixed bug in LET command where it did not recognize numbers in scientific notation.  
  • Fixed an obscure bug in the code generation of IF..ELSEIF..ELSE..END sequences.  
    1/26/2012 Version 2.1:  
  • Added BUBBLEGRAPH command and its Wizard. 
  • Changed XYGRAPH and SCATTERGRAPH to show "X" and "Y" as axis labels if they would otherwise be internal variable names. 
  • Added "Copy" menu item to graph popup menu so graphs can be copied to the clipboard and from there to any other program that can paste the clipboard.  
    11/11/2011 Version 2.0:  
    Major Changes: 
    Added Wizards for all commands. 
    Switched to Java version 1.6. 
    Other Changes to user interface: 
    Changed the "By Name" tab and the "Subroutine File Index" of the subroutine browser to respond to a single mouse-click instead of a double-click. 
    Changes to Commands: 
    Changed BINOMIALPROB to accept a vector containing several "Number of Successes".  
    Changed NORMAL command to make mean and stdDev optional, similar to NORMALPROB. 
    Bug Fixes:  
    Fixed formatting bug in Stats101 OUTPUT command which wouldn't accept formats identical to the WRITE command. Was "%width[.precision code]"; I changed it to "%width[.precision[code]]".   
    Fixed bug where, if Subroutine Browser is minimized, the "Window->Subroutine Browser" menu failed to restore the window.  
    Fixed WRITE command ROWS formatting of its HEADING column. It wasn't adding a delimiter after the row header. 
    09/15/2011 Version 1.5.9:  
    Changes to user interface: 
  • Added "TITLE" keyword to XYGRAPH, SCATTERGRAPH, and HISTOGRAM  commands. This allows user to specify a name for the graph's tab. 
  • Added to the special HISTOGRAM submenu the "Mark bin starts/Mark bin centers" menu item. 
  • Added "Scroll tabs/Wrap tabs" menu item to the graph tab menus.  
  • Changed over to new forum service and updated forum links to the new address. 
  • Corrected "Help" menu selection names in the GettingStarted.Txt file. 
    08/15/2011 Version 1.5.8:  
    Changes to user interface: 
  • Added display of Cumulative Distribution value to the histogram graphs.  
  • Added submenu to histogram graph popup menu to control the display of cum and/or inverse cum distribution values as percentage or count. 
  • Added ENUM and CONST commands. These are specialized variants of the NAME command, which still exists. 
  • Changed Help menu items: "Tutorial" to "Introductory Text (PDF)" and "Overview" to "Flash Tutorials". 
  • Bug Fixes: 
  • Fixed output window tab popup menu so it isn't erased by the double buffering process if the pointer goes outside the popup. 
  • Fixed bug in HISTOGRAM graph that didn't completely clear the grid lines from behind all the histogram bars when the yscale keyword was used and one or more bars exceeded the yscale value. 
  • Fixed bug where if in debug mode, with a breakpoint set, you step through the end of the program, then the breakpoint is not recognized when you try to run the program again normally; the program continues through the breakpoint to the end of the program. 
  • Other: 
  • Changed FOREACH so it will use the 2 or 3 terms of a sequence specification instead of creating a single vector whenever possible. So it will behave like an old FORTRAN Do-loop. This will save memory on large iterations but does not change to the way the user uses the command. 
  • Added comments describing "lib/trigCommands.txt" file to the html readme file in lib.  
    05/28/2011 Version 1.5.7:  
    Changes to user interface: 
  • Changed the way that graph crosshairs and annotations are generated to improve readability.  
  • Added key-accelerator, F1, to the "Help At Cursor" feature. 
  • Other changes: 
  • Added file "trigCommands.txt" to the library. The file provides subroutines that do forward and inverse trig functions using angles expressed in degrees instead of radians. 
    04/27/2011 Version 1.5.6:  
    Changes to user interface: 
  • Added popup hint menu that allows selection of command/subroutine/variable names after typing the first part of the name and then pressing Ctrl-Space. 
  • Added debug variable display tooltips. During debug, with the program paused, if you hover the pointer over a variable name, its value will be displayed in a tooltip. 
  • Added drag and drop to editor (Thanks to Robert Harder's FileDrop class). You can now drag a text file into the editor. 
  • Changes to Commands: 
  • Fixed bug in LET command that didn't allow literal constant number in scientific notation outside of parentheses. eg. LET a = 2.345E-4 would cause an error because it interpreted the "E-4" as a new variable name.  
  • Fixed bug in commands CLOSETABS and CLEAROUTPUT which caused problems when the commands were used more than once in a program. 
    03/12/2011 Version 1.5.5:  
    Changes to Commands: 
  • Changed processing of the logical expression of the UNTIL command so it allows undefined variables so that variables that are defined only within the loop can be used as part of the logical expression. 
  • Added SIGNUM keyword to the SIGN command to allow it to behave like the mathematical signum function, which returns 0 for 0 instead of a +1. 
  • Added ability to LET command to invoke user-defined subroutines that have one input and one output variable (functions). 
  • Other changes: 
  • Changed name of subroutine from NORMALTESTGRAPH to NORMALQQGRAPH in the library and in the Tutorial. 
  • Added subroutine CORR_SIGNIFICANCE to lib. 
  • The "Help at cursor" item from edit popup menu now will first check the word right under the cursor and if possible display its help for the command or subroutine name at the cursor. Only if that word isn't recognized will it go to the first word on the line looking for a command or subroutine name. 
  • Changed graph legend so it only draws the lines under the labels when "use dashed lines" is enabled. 
    01/26/2011 Version 1.5.4:  
    Changes to Commands: 
  • Added TYPE keyword to the NAME command. Allows the creation of named types for Named Constants. 
  • Other changes: 
  • Added a "Scroll graph tabs" checkbox to the Graph panel in the user Preferences dialog. 
  • Made some minor edits to the gettingStarted.txt file. 
  • Some revisions to the Tutorial document (see Help>Tutorial). 
    11/14/2010 Version 1.5.3:  
    Changes to Commands: 
  • Added beep to INPUT command so it beeps to alert the user that it requires input. 
  • Added NOBEEP keyword to INPUT command.  
  • Changes to Subroutines: 
  • Added PREDICT subroutine to lib. The PREDICT subroutine uses the coefficients and independent variables from the REGRESS command to "go the other way" and compute the dependent variable (Y) values from dependent variable (X) values. 
  • Added BOOTSTRAPMEAN subroutine to lib.  
  • Added SCATTER and PAIRS keyword and functionality to the XYGRAPH command. Now it can display scatter graphs and line graphs on the same graph. 
  • Other: 
  • Edited QuickReference.doc ("help>Tutorial") on the topics Bootstrap, Confidence Intervals, and Hypothesis tests. 
  • Removed "Tutorial Experiments" folder from "ResamplingPrograms/ExamplePrograms" since they are no longer referenced by the Tutorial.  
    09/25/2010 Version 1.5.2:  
    Changes to Commands: 
  • Changed name of FORWARD command to DECLARE. 
  • Changed PUT and REMOVE commands so that they allow input and result vectors to be the same vector. 
  • Made STRING command format codes use the same delimiters as those for the WRITE command. The STRING command previously used a blank as the delimiter for all format codes. 
  • Changed CLEAR and CLEAN commands so they can define and initialize a vector that was not previously defined. 
    Bug Fixes: 
  • Fixed breakpoint functionality: If program was aborted, the breakpoints weren't honored when program was next run.  
  • Setting a breakpoint failed on LET commands that had no LET keyword and where the result variable name started with "end". 
  • Corrected indentation process so that a leading quote mark will hide a /* marker. E.g., in '/* the /* will be ignored. 
  • Made some improvements to the HISTOGRAM axis labeling algorithms. 
  • Added "Getting Started" file to appear the first time a user opens Statistics101. 
  • Added some empirical Chi-square subroutines to lib (in file ChiSquareGeneral.txt"). 
    07/07/2010 Version 1.5.1:  
    Bug fixes: 
  • Corrected handling of operator precedence in LET command. 
  • Fixed breakpoint toggle code so that it would toggle on a LET command that omitted the "LET" and only had an equal sign. 
  • Fixed debug "resume" button action so that if program is stopped at a breakpoint which happens to be a LET command, "resume" will continue the program running at full speed instead of just stepping through each sub-step of the LET command. 
    06/01/2010 Version 1.5:  
    LET command enhanced: 
  • Now allows literal vectors, multiples, and sequences.  
  • Added a concatenation operator (&) to concatenate vectors. 
  • Made the LET command word optional.  
  • LET now allows hyphenated names ("my-var") as long as they are defined prior to their appearance in the LET command. 
    New Commands: 
  • STRING_REPLACE: Returns a new string resulting from replacing all occurrences [or the first] of a regular expression match in the input string with a given replacement string. 
  • STRING_COMPARE: Compares two strings, returning zero if they are equal, a negative number if the first is less than the second, a positive number if the first is greater than the second. 
  • UNTIL: a new loop command that executes commands between UNTIL and END until the specified logical expression evaluates to true. 
    New Subroutine: 
  • IS_SEQUENCE2: Tests a vector to determine if it is an arithmetic sequence all of whose elements differ by the same number (commonDifference) when sorted. 
    05/02/2010 Version 1.4.9:  
    GUI changes: 
  • Added Three comment-editing buttons to the toolbar: Comment/Uncomment, Shift Right/Left, and Wrap lines. 
  • Added "Replace All" button to Find/Replace dialog. 
  • Added the "Save" icon (a floppy disk) to the File/Save menu.  
  • Added "Shift-Click = Save As" to the Save icon on the toolbar, giving it dual purpose. 
  • Added wrapping of tooltip text for the popup command and subroutine help menus to make them easier to read. 
    New Commands: 
  • EXIT Quits the currently running user program. 
  • GETFILEPATH Retrieves the path information for the file accessed by the most recent READ or WRITE command. 
    New Subroutines: 
  • GENERATE_COMBINATIONS: Generates all combinations of data vector's elements taken 'groupSize' elements at a time. For each combination it invokes a user-written subroutine, PROCESSCOMBINATION. 
  • CHOOSETAGSTEST: Returns indexes of elements of inVector that satisfy a specified test. Used inside other subroutines to allow tests for the TAGS command to be passed into other subroutines. 
  • SELECTCOORD: For all input vectors, copies elements at positions satisfying a test on the first input vector into corresponding output vectors. 
    Subroutine Changes: 
  • Modified GENERATE_PERMUTATIONS subroutine so user needn't use GLOBAL to pass the data into his PROCESSPERMUTATION subroutine. If you have already written code using PROCESSPERMUTATION you will need to revise it to conform to the new signature.  
    04/07/2010 Version 1.4.8:  
  • Changed code in REMOVE command that sorted the position vector. Sorting the position vector caused problems with the GENERATE_PERMUTATIONS subroutine. Added further change to REMOVE to handle empty position vector (pointed out by Gus Coppel). Also changed REMOVE so it ignores duplicate position indexes.  
  • Added FORWARD command to better support library subroutines like GENERATE_PERMUTATIONS.  
  • Fixed the problem with OUTPUT where it did not produce the proper endline markers for Microsoft Windows OS.  
  • Added "DENSITY" keyword to HISTOGRAM and HISTOGRAMDATA commands.  
  • Added ability to change graph labels in complexCommands.txt and NormalTestCommands.txt. 
  • Added GENERATE_PERMUTATIONS subroutines to the /lib directory. . 
    03/05/2010 Version 1.4.7:  
  • Added STRING and INPUT commands. 
  • Added APPEND keyword to OUTPUT command and changed its default to "overwrite existing file". 
  • Added DIR, ENV, and VERBOSE features to EXEC command. 
  • Added "Open Recent Files" submenu to file menu. 
  • Added "Save" button to toolbar. 
  • Changed name of TEST subroutine in lib to CHOOSETEST. 
  • Added ability to change the axis labels on the LAGGRAPH and AUTOCORRGRAPH subroutines.  
  • Thanks to Augustin Coppey for suggesting some of the above features. 
    02/10/2010 Version 1.4.6:  
  • Added CLEAROUTPUT, CLOSETABS and EXEC commands. 
  • Added HEADING keyword to READ and WRITE commands. 
  • Added FILE keyword to OUTPUT command so it can write to a file. 
  • Added TEST subroutine to the subroutine lib. 
  • Fixed bugs in READ, WRITE, and HISTOGRAM/HISTOGRAMDATA commands.   
    01/02/2010 Version 1.4.5:  
  • Changed menu "Help->Command Summary" to display in the JavaHelp browser.  
  • Other minor user interface changes. 
    11/08/2009 Version 1.4.4:  
  • Made font size preference apply to the "By Category" tree panel in the Subroutine Browser. 
  • Now the edit popup menu item "Refresh List" refreshes the Subroutine Browser tables as well as the popup menu items.  
  • Made Subroutine Browser Back and Forward buttons remember which subroutine to highlight.  
  • Switched over to JavaHelp instead of my SimpleBrowserWithLauncher as the display for all the help documentation other than the Subroutine Browser for subroutines.  
  • Now, if the command help bar is displaying a subroutine that is defined in either the edit tab or the debug tab, the main window will jump to that subroutine in whichever tab it is visible, instead of as before, jumping to the Subroutine Browser. 
    10/18/2009 Version 1.4.3:  
  • Added Subroutine Browser. Access it via the Window->Show Subroutine Browser menu. 
  • Added ROWS keyword to WRITE and READ commands. The keyword forces the commands to write and read rows of a file as single vectors instead of their default behavior of applying file columns to vectors. 
  • Added  two subroutines to MATRIX subroutine library file: MATRIX_MAKE_BY_ROW and MATRIX_MAKE_BY_COL.  
  • Fixed error in MATRIX_TRANSPOSE subroutine. 
    10/18/2009 Version 1.4.2:  
  • Special beta version with ROWS keyword added to WRITE command. Never published. 
    07/04/2009 Version 1.4.1:  
  • Changed Debug window so it now displays the referent of a dummy variable along with the dummy variable itself in the form: "dummyName[referentName]: (1.0 2.0 3.0)"  
  • Added NormalTestCommands.txt subroutines (SKEWNESS, KURTOSIS, NORMALTESTGRAPH) to lib.  
  • Added tooltips to the Debug Frame's two tabs ("Variables" and "Runtime Stack"). Rearranged the menu items on the graph panel (LabeledGraph.java) for clarity.  
  • Added feature to all graphs and plots (BOXPLOT, HISTOGRAM, HISTOGRAMPLOT, SCATTERGRAPH, TIMEPLOT, XYGRAPH, XYPLOT) to display the name of the vector referenced by a dummy variable instead of the name of the dummy variable. This way, when used inside subroutines, the graphs/plots can display the names of the subroutine's input variables instead of the associated dummy variable names.  
  • Fixed Undo/Redo bug that required user to type ^z twice for each character undone and that also generated a "can't undo" exception. This bug was introduced after ver 1.3.3. 
  • Added a button to access Amazon.com to the main window toolbar. 
    03/25/2009 Version 1.4:  
    Changes to the Debug window:  
  • Added "Runtime Stack" tab to the Debug Frame. Double-clicks of the runtime stack or of the current command (at the top of the frame) will jump the EditorFrame to the corresponding program line. 
  • Changed "Hide internal variables" button into a checkbox.  
  • Added a "Show inactive variables" checkbox.  
  • Added ability to "abridge" long vectors in the debug window to speed up stepping through a program. This also required adding a new "Debugger" tab to the Preferences dialog.  
  • Changed three of the Debug popup menu items to be checkBoxMenuItems. 
    Other feature changes: 
  • Made "AutoInclude" feature smarter so it now gives user-defined subroutines priority over library subroutines that have same name, and doesn't include the library file that would cause a doubly-defined error.  
  • Changed word-highlight feature to allow "$" to be part of a word. 
  • Made some clarifications to complexCommands.txt comments and argument names and added a COMPLEX_MAGNITUDE subroutine. 
    Bug Fixes
    Fixed a number of low-impact bugs. 
    02/04/2009 Version 1.3.3:  
    Changes to features: 
  • Added subroutines: AUTOCORR, AUTOCORRGRAPH, and LAGGRAPH. Also added subroutines to handle complex numbers. 
  • Now if you double-click on an error message in the output window, the program in the edit window will scroll automatically to, and highlight, the error line. 
  • Now, when a run-time error aborts the program, the debug window opens showing the values that all the variables in the program had just before the error. 
  • Added PUT command. 
  • Enabled the YSCALE keyword on the HISTOGRAM command. 
  • Bug Fixes: 
  • Fixed bug in READ command where it would abort on reading a negative number from the input file.   
    01/11/2009 Version 1.3.2:  
    Changes to features: 
  • Added auto-INCLUDE feature.  
  • Added matrix math subroutines to lib.  
  • Added FDIST subroutine to lib. 
  • Changed indent procedure so that on NEWCMD lines, both the NEWCMD command word and the subroutine name will be affected by the upper/lower case conversion as the NEWCMD command name itself.  
    Bug Fixes: 
  • Fixed bug in NORMAL command when its argument is a dummy variable and NORMAL is used as a function in a LET command.  
  • Fixed error that caused user programs longer than 1000 lines to crash. Related, fixed the placement of the line number "1000", which overlapped into the editor field.  
  • Corrected error in SHUFFLECOORD subroutine.  
  • Fixed error in EditorFrame.highlightLine() where it would try to highlight continuation lines when there were none, but the next line was a comment.  
  • Fixed bug that caused ArrayStorageError with a command like: LET a = b.  
    12/07/2008 Version 1.3.1:  
    Changes to subroutines: 
  • Changed name of  BIAS_ADJUST_FACTOR subroutine to BIAS_ADJUST. The BIAS_ADJUST now performs the whole adjustment process, including the computations of the adjusted Confidence Interval limits.  
  • Added INTERPOLATE_LINEAR, SEARCH_BINARY, and NEAREST_INDEX subroutines to lib.  
  • Moved the bootstrap subroutine folder to lib2 from lib.  
  • Changed name of subroutine GAMMA to GAMMADIST and GAMMA1 to GAMMADIST1 in file BetaDistribution.txt and added new subroutine, GAMMA to mathCommands.txt.  
  • Corrected a potential bug in subroutine BETA_01 (added a CLEAR command).  
  • Corrected a bug in subroutine GAMMA (changed sign of the result).  
    Changes to commands: 
  • Added NORMAL and UNIFORM to the list of commands that work with the LET command.  
  • Added ability to read named constants to the READ command.  
  • Fixed bug in TAKE command where it interpreted a NaN to be an index of "1". Now, NaN is an error.  
  • Fixed bug in FOREACH command where it would reject this form: "FOREACH n 1,10" with an "Incorrect number of arguments" error message. 
    Changes to Statistics101 user interface: 
  • Added separator to both subroutine menus in the Edit window popup.  
  • Changed logic of subroutine lists so that @hide hides subroutine names from both list menus (category list and "command and subroutine" list).  
  • Improved behavior of scrolling automatically to the proper subroutine text when opening the help window using the category list menu or the command and subroutine list menu. Now it will find the first complete match to the subroutine name, not the first partial match. 
  • Added subroutine filepath to the title of the help window when it is showing a subroutine.  
  • Corrected bug in Find/Replace where it would match on a partial match at the very end of the text when "Whole Words" was selected. 
  • Fixed three indentation problems: 1. The line after a NEWCMD, if a continuation, would be under-indented. 2. The line after the last continuation line of a continued IF, WHILE, REPEAT, etc., would be indented an extra level. 3. Incorrect indentation for ELSEIF clause that has a continuation marker. 
    10/12/2008 Version 1.3:  
  • Added "continuation line" feature. Now you can continue a command onto more than one line. See description
  • Added keyboard accelerator (Ctrl-B) to "Clear all breakpoints".  
  • Updated the tutorial. 
  • Improved error messages from LET command and NEWCMD command.  
  • Fixed error in the file "ResamplingPrograms\ExamplePrograms\ProjectManagementPERT_BETA.txt" and revised it to use the LET command. 
    09/28/2008 Version 1.2.9:  
  • Added the LET command. This allows you to express a formula simply, for example: LET hypotenuse = SQRT(x^2 + y^2) 
  • Added "word highlight" feature to edit window: when a word is clicked, all matching words are highlighted.  
  • Added a "Find/Replace" dialog for the editor.  
  • Added "Editor" tab to "Preferences" dialog box and moved editor-related items from the "General" tab to the "Editor" tab.  
  • Changed Statistics101's response to the unimplemented MAXSIZE command to a warning instead of an error.  
    08/16/2008 Version 1.2.8:  
  • The help bar, when showing a subroutine name from the library and when double-clicked, will now bring up the subroutine's file in a browser window for inspection and scroll to the designated subroutine. If the subroutine is not in a file, i.e., it is in the edit or debug window, then the editor is scrolled to display the subroutine's source.  
  • Added support for "lib2" folder. Subroutines in lib2 are not in the "Insert Subroutine" menu, but their help info is included in the help bar and their file will be opened for viewing when the help bar is double-clicked.  
  • Added command line switches -x1, -r, and -w. Added "argFile" keyword to READ and WRITE to support the -r and -w switches.  
  • Added subroutine category feature (includes adding the "@" keyword to NEWCMD, and a category menu to the popup and Edit menus. 
  • Removed the four command help menus and replaced them with 3 menus that are consistent: all open the help doc when clicked, all insert commands and subroutines in the text when shift-clicked. The three new menus are: "Commands", "Subroutines From Lib", and "Commands and Subroutines (by Category)". 
  • Removed NEWCMDVAR command, since its functionality was moved to NEWCMD.  
    Bug fixes
    Fixed bug in Parser.getLogicalExpression() that would error if the test had a "." as its left argument. Improved error detection and reporting in the Parser's handling of the REPEAT command. Fixed the problem in, due to cr/lf chars being unaccounted for, where highlights are wrongly setup after a program is pasted into the editor in Windows. Corrected the links in "TopicMap.java" for the docs to GETARG and ARGCOUNT, which were reversed. Added error trap for when an optional arg subroutine is invoked that has insufficient numbers of non-optional arguments.  
    06/02/2008 Version 1.2.7:  Added an "Optional arguments" feature to the NEWCMD command, introduced by the '#' mark. This makes it possible for NEWCMD to have a variable number of arguments. I will eventually remove the NEWCMDVAR command since its functionality is less powerful and more awkward than the Optional Arguments feature. Made the indexing of the subroutine names in the /lib directory recursive so it would include subfolders and their contents. Changed name of the DRAW subroutine in the file drawCommand.txt to EXTRACT to avoid name clashes. 
    04/27/2008 Version 1.2.6:  Added NEWCMDVAR and ARGCOUNT commands. These allow you to write subroutines that take a variable number of arguments. Added tooltips to the Command Help menu items in the Edit popup menu. Added "Include Lib File..." menu item to the Edit menu on the menubar and to the popup menu of the editor window. This allows the user to quickly access the lib folder, select a file to include, and then add an INCLUDE command for that file to the program text at the cursor position in the editor's text. Revised some lib subroutine names to eliminate name clashes. Changed DEBUG command so it prints the following to the output window: 1)the line number at which it is invoked, 2)an optional user-specified message, and 3)the subroutine stack trace, if any.  Improved error reporting on TIME command.  
    02/28/2008 Version 1.2.5:  Changed the sort order of variables in the debug window so that variables at top scope (i.e., not in subroutines) sort together first, followed by the subroutine variables, then followed by the internal variables, if shown.Added a new tab to the Preferences dialog (see Edit Menu) to tailor the default features of all graphs. Made some tweaks to the scaling of the graphs. 
    02/16/2008 Version 1.2.4:  Changed HISTOGRAM command so it creates a graphical histogram instead of a text plot. Renamed the original histogram text plot functionality to HISTOGRAMPLOT. Added a new command, HISTOGRAMDATA, that returns histogram data but does not graph the histogram. Added an optional "step" term to the Sequence Specification. I.e., now you can write "2,10,2" to mean (2 4 6 8 10). Changed arithmetic commands, where appropriate, so they now produce runtime errors on invalid operations such as divide by zero, or square root of a negative, or log of zero or negative, etc. Improved axis scaling on the graphs. Changed Edit Window's popup menu "Command Help" items so they only show the command name, not the whole syntax.  
    01/19/2008 Version 1.2.3:  Added XYGRAPH and SCATTERGRAPH commands (see also Graphic Features). 
    01/10/2008 Version 1.2.2:  Added FRACTION, INTEGER, NORMALPROB, NORMALPROBINV, REMAINDER, ROTATE, SHIFT, and TIME commands. Changed ROUND so it can round to any specified place before or after the decimal point. Added automatic printout of the runtime stacktrace to Stats101's output window when a runtime error is detected. Revised all the commands (for which it is appropriate) to verify at runtime that their result vector is not a constant vector. This can happen inadvertently inside a subroutine that is passed a literal vector via a dummy variable. Added checks to disallow UnassignedNamedNumbers being used in numerical/arithmetic commands. Reorganized the contents of the ResamplingPrograms folder. Corrected error in my "ResamplingPrograms\Example Programs\SubroutineExamples\07_CuringTheCompulsiveGambler.txt" file. 
    11/19/2007 Version 1.2.1: No change to the program. Fixed the many broken hyperlinks in the Help files.  
    11/17/2007 Version 1.2: Added FOREACH command. Fixed bug in OUTPUTcommand which caused the format prefix to be skipped if the value being formatted was a named constant. Fixed bug, introduced in ver 1.1, that broke the DEBUG command.  
    11/11/2007 Version 1.1: Added BREAK command. Changed behavior of SET command (and multiple specifications such as vec1#vec2) so that the multiple spec now means that all the elements of vec2 are copied the number of times that vec1's first element dictates. This is a change to the Resampling Stats standard. Thanks to Dr. Plastock for the idea. Improved the error messages for a number of error types to make them more explicit. Added an empty "MyPrograms" folder to the Statistics101 distribution that can be used as a standard place to store your Statistics101 programs. 
    09/30/2007 Version 1.0.9: Added PRODUCT, REMOVE, and SIGN commands. Changed the behavior of named constants to make it more intuitive with respect to sorting. See the SORT command documentation and the Tutorial. Fixed some minor bugs. 
    09/06/2007 Version 1.0.8: Revised NEWCMD's syntax to allow a one-line description of the subroutine that will appear in the Description Help Bar. The added syntax looks like this: ?"Description". The question mark introduces a quote-enclosed comment string. Added ability for PRINTcommand to accept format specs for the case where the TABLE keyword is absent. Fixed minor formatting bug in WRITE command.  Updated the docs to match these changes. The DEBUG help link from the edit popup menu didn't work. Fixed that. Added Help button to the debug window. 
    08/22/2007 Version 1.0.7: Enhanced the HISTOGRAM command's "bins" and "binSize" keywords to accept variables instead of just literal numbers. Added a command description help bar below the Command syntax help bar. Added detection and reporting of "java.lang.OutOfMemoryError". Made minor readability changes to the command syntax descriptions in the program and the documentation. 
    4/28/2007 Version 1.0.6:  
    Changed name of "BINOMIAL" command to "BINOMIALPROB" command to reduce confusion. 
    Added "binsize"keyword to HISTOGRAM command allowing user to set the width of histogram bins. 
    Added syntax Help for subroutines (NEWCMD): Now the subroutine definition line with arguments appears in the syntax help window after first syntax check. 
    Double-clicking on the syntax help window when it shows a subroutine command now brings up the help for NEWCMD instead of the general index as before. 
    Added "lib" directory, with a few examples in it, to the distribution. 
    Improved preprocessor (INCLUDE command) error messages to include edit and debug pane line numbers. Preprocessor now highlights error lines in edit and debug panes.  
    Slightly changed formatting of INCLUDE files as shown in debug tab of the main window. 
    Revised the Introduction to Statistics101Programming to reflect the above changes; added some new material to the tutorial. 
    Bug Fixes: 
    Fixed bug that caused an exception when both sides of a sequence spec (vec1,vec2) were variables.  
    Corrected OUTPUT command's handling of named constants.  
    Corrected preprocessor so it now doesn't expand INCLUDE files if they are inside a block comment.  
    Fixed bug that caused end comment block ( */) to be ignored if the line contained a comment anywhere on the line. 
    Fixed bug where selecting "clear all breakpoints" menu item would also clear the program pointer (the green) highlight. 
    04/10/2007 Version 1.0.5: PRINT command now accepts an empty argument list. Also accepts a text string. Also PRINT now prints named constants names out instead of their values.  NAME command now can auto-assign arbitrary values to the names it creates. Named constants now have a "type" so that names created by different NAME commands are of different types. Enabled NAMEd constants to be used in sequences (mon,fri) and multiples (3#ace).Revised the "Intro To Programming" tutorial to accommodate these changes. Greatly speeded up the COPY command. Added two menu items to edit window popup menus: "Toggle Breakpoint" and "Clear All Breakpoints". Added LOG10 command. 
    03/10/2007 Version 1.0.4: Added optional keyword, TABLE, to the PRINT command. This causes the PRINT command to print its output as a table. The change also allows optional format specifications for the table columns. 
    01/30/2007 Version 1.0.3: Added XYPLOT command including the LOG scale feature for the y axis. Fixed bug in WRITE command where it would blow up when an element it was outputting was 0.0. Also, changed WRITE so it doesn't require that if one vector has a formatSpec they all do.  
    01/10/2007 Version 1.0.2: Added BINOMIAL, COMBINATIONS, and PERMUTATIONS commands. Revised the WRITE command, adding the "window" keyword that causes WRITE's output to go to the Statistics101 output window instead of to a file. ("file" keyword still functions as before.) 
    10/29/2006 Version 1.0.1: Changed INCLUDE rules so that a file may be included more than once. This allows, for example, the case where a program INCLUDEs two files, A and B, where both A and B include a third file, C. All inclusions of C after the first will be ignored. Also changed reporting of Parse errors in Output Window so it now lists both line numbers: one for the Edit window and one for the Debug window. Made some minor changes to error messages and GUI. 
    9/20/2006 Version 1.0: Added the Logical Expressions feature. This allows the use of logical operators (AND, OR, XOR, and NOT) in IF, ELSEIF, and WHILE commands. Removed expiration date and changed version number to 1.0. No longer in Beta test. 
    7/16/2006 Version 0.65 beta: Changed WRITE command so that if no format codes are used, the output will be a simple CSV file with max precision and no extra spaces.  Fixed bug: Constants defined (NAMEd) inside a subroutine were erroneously cleared when the subroutine exited. Added trig function (sin, cos, etc) commands. 
    7/01/2006 Version 0.64 beta: Added INCLUDE command. Added dynamic breakpoints to debugger. (Please read in the debugger about breakpoints.)  Split Edit Window into two tabbed windows, one for Editing and one for Debugging. This last was done to accommodate the differences between a program file that has INCLUDE commands and the resulting expanded text file. 
    6/5/2006 Version 0.63 beta: Added GLOBAL command. Changed behavior of subroutines (NEWCMD) with respect to vectors outside the subroutine. Now subroutines can't see constants or variables defined outside the subroutine unless the constants or variables are listed in a GLOBAL command. Please read the UserGuide entries on NEWCMD and GLOBAL, and the subroutine section in the tutorial. Changed name of BREAK command to DEBUG. 
    6/5/2006 Version 0.62 beta: Added NEWCMD command. This introduces subroutines to the Statistics101/Resampling Stats language. Changed debug window so it now highlights all lines that were changed by the last command. Updated user manual and tutorials to describe the use of subroutines (NEWCMD). 
    5/23/2006 Version 0.61.2 beta: Fixed some bugs in the automatic indentation process that were introduced when the "/*...*/" comment feature was added. 
    5/21/2006 Version 0.61.1 beta: Added "User Forum" menu item to the Help menu. Added Font size text field to preferences dialog. Editor now highlights run-time error lines. (It used to only highlight parsing errors). Fixed scrolling in debug window so it will automatically scroll to changed line or error line. Changed indent routine to not change case of contents of /*..*/ comments. Revised edit popup menu alphabetic ranges to more evenly divide the list of Commands: A-L, L-R, R-W. Changed capitalization of several menus to be Title Case to conform with most of the menus.  Changed indenting so it keeps the caret in the same place after indent is done. This keeps the editor text from jumping to the end of text each time an indent is performed. 
    5/10/2006 Version 0.61 beta: Added ELSIF command. Changed parser to treat C-style markers "/* .. */" as block comments. 
    5/05/2006 Version 0.60 beta: Added highlighting of error line in edit window. Added ELSE command. Added tests: notBetween and notMemberOf. Thanks to Roy Plastock for the idea for the new tests. 
    4/30/2006 Version 0.59 beta: Added ability to edit the debug watch variables. Changed RepeatCmd so it reads the repeat count on each loop so that the user can change the repeat count during debugging. 
    4/22/2006 Version 0.58 beta: Now allows user input of empty vectors (such as: COPY () vec1). Fixed debug highlighting in the editor so it highlights the last line properly even if that last line doesn't end in a "newline" character. Changed cursor settings so only the edit window's cursor changes to an hourglass and back during program run. Made all checks for updates to Statistics101 able to open the user's browser and go directly to the download page. 
    4/18/2006 Version 0.57 beta: Added highlighting of the changed variable in the debug variables window. Changed expiration date to 12/31/2006. 
    4/15/2006 Version 0.56 beta: Added debugger to Statistics101. See the program Help for description and how to use it. Added access to online tutorials to the Help menu. 
    3/29/2006 Version 0.55 beta: Fixed bug in SUBTRACT and DIVIDE commands. If their first argument was shorter than another argument, both commands would fail during execution. 
    3/5/2006 Version 0.54 beta: Added Preferences dialog to the Edit men allowing the user to change some defaults. Added "Cum" and "Cum percent" column to the HISTOGRAM command's output. Made some formatting changes to the TIMEPLOT command's output. Made some internal changes to improve program efficiency.  
    12/14/2005 Version 0.53 beta:  
    Changes to command behavior: 
    - Changed ROUND command so it "rounds" NaN to NaN, not to zero as it did previously.  
    - Made HISTOGRAM parser accept literal lists as arguments.  
    - Added check to NAME command parser to make sure that the user isn't trying to use any previously defined variable names as constants.  
    - Revised commands that extend a short vector so that they do not actually affect the lengths or contents of their input vectors. This affected these commands: ADD, SUBTRACT, MULTIPLY, DIVIDE, POWER, SUMABSDEV, SUMSQRDEV, CHISQUARE, and CLEAN.  
    - Changed RUNS command so it now allows a run of one.  
    - Changed the MULTIPLES command so it allows a multiple of one. 
    Changes to user interface: 
    - Changed width of the divider bar from 5px to 7px to make it easier for user to grab the control arrows.  
    - Changed help syntax displays, removing the angle brackets and clarifying the argument names.  
    12/04/2005 Version 0.52 beta: Fixed bug that disabled the Syntax Check command and the Run command if a syntax error was detected during syntax check of an IF command.  
    12/03/2005 Version 0.51 beta: Added the NAME command to create named constants. Now allows a variable or named constant before and/or after "#" in  "multiple" specifications and "," in sequence specifications. Added checking to catch undefined variable names (usually misspellings) at parse time instead of run time.Changed error reporting so that only one error is reported at a time.  Enabled drag and drop between the editor window and the output window. Enabled one-touch-expandable widget to the splitPanel's divider. 
    10/19/2005 Version 0.50 beta: Fixed bug in MULTIPLES command that caused a multiple to be ignored if it was made up of the highest values in the input list. 
    9/29/2005 Version 0.49 beta: Fixed bug that caused crashes in Mac systems: paths to the .png files that are the toolbar icons were not resolved correctly on the Mac OS. Many thanks to Joe Husk for his help with this bug. 
    9/20/2005 Version 0.48 beta: If check for updates can't access the website, now a dialog appears that tells the user he must be connected to the internet. Fixed ambiguity bug in scientific notation (where "copy 1.2 e4" would be an error because the e4 would be considered the exponent of the number instead of a variable name.) Now, it is absolutely required that there be no space between the mantissa and the "E" of the exponent. Fixed bug where NaN was not recognized at end of a list. e.g., "copy (.) a" would produce an error. Also allowed "." or "NaN" after "#". For example, now "4#." and "4#NaN" are allowed. Either represents the list "(NaN NaN NaN NaN)". 
    8/21/2005 Version 0.47 beta: Added detection of decimal numbers that do not have a leading 0 (e.g., ".123" rather than "0.123"). Leaving out the leading zero is an error so there can be no ambiguity between the case of ". 123", where the dot means "Not a Number" or "Missing value", and ".123" where the dot is a decimal point. 
    8/8/2005 Version 0.46 beta: Corrected userguide file references for SQUARE and SQRT help references. They had been interchanged. Fixed problem where the titlebar "dirty" indicator would not be cleared on save or saveAs. 
    7/21/2005 Version 0.45 beta: Added CHISQUARE command. Added "dirty" indicator (leading asterisk) to main window title bar. Changed default random number generator to the Mersenne Twister. Changed PROGINFO command so it will output the name of the Random Number generator being used. 
    7/15/1005 Version 0.44 beta: Added Mersenne Twister algorithm as an option to generate pseudo-random numbers. Modified the SEED command so it allows the user to choose between the Mersenne Twister and the java.util.Random algorithms. Default is still the Java Random algorithm. Updated the User's Guide to reflect the change. See the listing for the SEED command in the User's Guide to Statistics101.  
    7/14/2005 Version 0.43 beta: Fixed bug introduced into VARIANCE and STDEV commands in previous update. Error occurred when the "divn" keyword was used. Also added menu item "Check for update" to Help menu. 
    7/12/2005 Version 0.42 beta: Changed VARIANCE and STDEV commands algorithm to better handle large numbers with small variances.