Release History

This program was based on a version to analyze 2D data sets, called Reduce.  That was renamed Reduce2D and this evolved into Reduce3D in 1992.

Reduce history

1.0.0 11 June 91

Initial release.

1.0.1 16 June 91

Added possibility of inputting multiple MERGE files; fixed bug in 'GetInfo' dialog to restore default values; added check for exceeding total number of crystals.

1.0.2 27 June 91

Added ability to recognize hack files.

1.0.3 16 November 1991

Added 2d and 3d random point test, though the 3d test only works on rectangular samples, since for normal samples we need a 3d bounding box.

1.0.3a 28 November 1991

Cambria fixed a bug in 3d random point test.

1.0.4 6 December 1991

Put in 2d and 3d quadrat test, with same 3d limitation as in 1.0.3.  Also now allows crystals with negative volumes for spacial statistics, although it informs the user if there are in fact any zero or negative radii.

1.0.5 13 January 1992

Put in 3d bounding box calculation, so random point and quadrat tests now work in 3d.

Reduce3D history

1.1.0 1 December 1992

Basically stripped out 2d stuff, put in mean-normalized CSD and volume correction.  Allows user to select which calculations to perform.

1.1.1 17 February 1993

Put in batch runs, isolation stats, ordering index boundary corrections and t-test.

1.1.2 23 February 1993

Worked out some kinks in batch runs, put in crystal density and volume fraction, fixed it so Portia would run.

1.1.3 14 July 1993

Took out the cubic (i.e. regular) quadrat test, so it only uses the spherical one now.  Also put in some checks to warn the user and exit if the quad test is doomed to fail (in either case) because the quad is too big, and sped up the spherical calculations.

1.1.4 10 June 1994

Corrected a minor bug Carlotta discovered in the bounding box calculation, which only got tripped off in very unusual cases.

1.1.5 21 July 1994

As it turns out, the correction in 1.1.4 made it so it only works in those unusual cases.  This version gets it right.

1.1.6 29 July 1994

Put in skewness and kurtosis.

1.1.7 5 August 1994

Changed formats of CSD files to correspond to changes in REDSIM3D.

1.1.8 14 March 1995

Changed random point calculation so it will not accept a point placement if it is nearer to a wall of the bounding box than the nearest crystal.

1.2.0 9 April 1995

Combined it with REDSIM3D, put in “shaving” functions, changed RP test back to original, but left old logic in program.

2.0.0 18 July 1995

Added version 2 enhancements.

(There was a hiatus in Program Notes hiatus)

2.5.3 28 September, 1999

Rewritten in C++ (was in Pascal), using Metrowerks Codewarrior & PowerPlant framework.

Added all cool Mac behavior: icons, cool UI, AppleEvents, Nav Services, etc.

Added 3-D rendering of crystal array, holes array, and bounding box.

Added logic for null-hypothesis envelopes.

Added observability filtering.

Removed user interface for 3-D rendering (this has been moved to a separate program, Render3D), separated settings for envelopes into their own tab.  Added ability to make “diffusion-controlled envelopes” a la Daniel & Spear (99).

2.5.4 1 October, 1999

Added selection for verbose logging, and made this independent of debugging status.  Also changed DC envelope implementation to reduce beta until a good simulation is made.

(Program Notes hiatus)

2.5.7 3 May 2000

Changed verbose logging from occurring with debug builds to a Settings Window checkbox.

Changed parameters for “diffusion-controlled envelope” calculation

Added special code for the bad analysis of Claude

Fixed problem with adjusting crystal volume for overlap.

(Program Notes hiatus)

2.6.2 August 25, 2005

Recompiled with CodeWarrior 8.3 for Mac OSX.

Works on OSX 10.2.8 - 10.4.

Fixed minor problems with Info.plist and icons.

Set up file names, types, and Info.plist stuff so that files should open in the correct programs based on the data flow path (Crystallize -> Reduce -> GraphCFs).

2.6.3 August 8, 2007

Fixed bug in translation method calculation for cylindrical primitives.

2.7 September 15, 2007

Removed greediness aspect of progress box (no longer applicable for modern computers).

Added help tags to settings window controls.

Fixed algorithm in BoundingBox::PrimitiveInBox routine for cylindrical primitives, as well as a related bug in OffsetIntersectVol for cylinders.

Improved UI Logic in Settings window.

Added the ability to shave a cylinder.

Changed preferences to use a text file and removed preference resources for default values

Changed About box.

Removed Claude-specific code and settings.

3.0 December 31, 2007

Thorough overhaul and migration from CodeWarrior to XCode.

UI recreated in Project Builder and recoded in Objective-C.

PowerPlant code removed and replaced with C++ standard library classes.

3.01 January 11, 2008

Fixed a bug in SideSet copy constructor.

3.02 June 26, 2008

Added better verbose logging (still not sufficient), and improved collinearity detection in BendAroundSide.

3.1 July 7, 2008

Improved the algorithm in FindFirstSide, which was leading to a bad convex hull.

Created the new hull algorithm in which a primitive is exscribed around the dataset.

3.11 October 11, 2008

Substantial speed improvement by changing Calculator::progress().

Added ability to apply observability filter to primary dataset, instead of just the simulation.

Added ability to directly specify test interval.

3.2 October 25, 2008

Rewrote all convex-hull-related code; uses new algorithm (Randomized Incremental from K.L. Clarkson and P.W. Shor, 1989) instead of old "gift-wrapping" algorithm.

Made high-resolution version of program and document icons. Now with drop shadow! Woo hoo!

3.21 November 17, 2008

Improved verbose logging.

Fixed crashing bug in SideSet destructor.

3.22 November 18, 2008

Fixed a crashing bug that occurred when using Sides and having the exscribed primitive box checked.

3.23 November 18, 2008

Fixed a bug that sometimes prevented GraphCFs from parsing the output file.

3.24 May 20, 2010

Fixed a bug that sometimes prevented GraphCFs from parsing the output file. Now outputs NaN instead of -1.0 to flag bad data, and outputs 0.0 when applicable.

Fixed a bug that caused the MCF to converge on a value > 1.0 when using volume as the mark instead of radius.

3.25 May 28, 2010

Removed redundant tidy up option in favor of apply observability filter.

Added total estimated time to completion to progress window.

Added ability to use the dataset to determine observablity criteria, as in Ketcham et al. (2005).

3.26 August 20, 2010

Fixed bug that sometimes prevented calculation of the volume fraction when Sides was selected.

3.27 September 7, 2010

Fixed subtle bug in new convex hull algorithm that would sometimes cause hull calculation to fail.

Added ability to output convex hull parameters for viewing in Render3D.

3.28 February 10, 2011

Fixed bug in reading bounds values in input files.

3.29 February 15, 2011

Fixed bug in output of shaved data sets.

3.30 March 2, 2011

Fixed another bug in output of shaved data sets.

Made shave (with calculation) actually output a set of differently named files, instead of just one.

Fixed crash when observability filter was disabled.

3.31 March 5, 2011

Adjusted input parsing to allow Crystallize 1.13 and higher to output extended radii (like real datasets) rather than actual (like previous simulations).

Output files now indicate whether radii were treated as extended or actual.

Bounds stated in input files now fully override any user settings for sample shape.

No longer need to click/tab out of a textfield before it's recognized in the Settings window.

3.32 May 2, 2014

Made more informative error messages for poorly formed input files. Improved error handling to reduce crashes with errors.

Recompiled to use current OS version. Now requires OS X 10.8.

Back to top