Releases: BlueQuartzSoftware/EbsdLib
v2.4.1
BUG: CubicOps - Recover precision for misorientations on cubic sym ops
In CubicOps::calculateMisorientationInternal, compute the explicit reduced
quaternion's vector components for each of the three sym-op candidates and
extract the angle as 2atan2(|v|, w) instead of 2acos(w).
The acos(w)-near-1 form was catastrophically ill-conditioned for cubic
misorientations that lie on a 4-fold (90° about c-axis), 3-fold (120° about
[111]), or 2-fold sym op. With float32-stored input quaternions promoted
to double, (qco.z()+qco.w())/sqrt(2) lands at ~1-1.7e-8 instead of 1.0;
acos then amplifies the ULP-level noise to ~2e-4 rad ≈ 0.02° residual.
The new form recovers the precision: explicit components like
(qco.z - qco.w) evaluate to exactly 0 in IEEE 754 when qco.z == qco.w,
regardless of upstream float32 truncation noise. The sqrt(1 - w*w) form
inherits the lost precision; the explicit-component form does not.
v2.4.0
What's Changed
- BUG: Ensure phases are ordered correctly in the PhaseVector container
- ENH: Add 3 Image pole figure generation with Legend
v2.3.0
- C++20 required
- Added Watson and Von-Mises Fisher orientation sampling
- VER: Update EbsdLib version to 2.3.0
v2.2.0
DataArchive
This holds data for EbsdLib testing
Instructions
Compress your file using tar.gz. If the file was created by SIMPL/DREAM3D then add a 6_6_ prefix to the file. If there is a .xdmf file also include that file in the tar.gz.
The command to tar up the archive would be: tar -zvcf Foo.tar.gz Foo.* which will archive all files that are named Foo.*, so Foo.dreamd and Foo.xdmf.
compute the SHA512 hash using shasum -a 512 [FILENAME].
Update the table below.
Upload your file.
Scroll down to the bottom and click the "Update Release" button.
Update the Top Level CMakeLists.txt file to call the download_test_data cmake function with the new data archive name and hash.
Deprecated
These files are unused and slated to be removed in upcoming update
| Test Name | SHA 512 Hash |
|---|---|
| Laue_Orientation_Clusters_v6.tar.gz | f327d3d2a86d539b3c1f3fc755d8f5741d8eb68aab45fc1ab54d9e5db48643903f9a37898366203e6eb2e7585ce57c6e186cca2107acb1a53318b813345cb10a |
| Pole_Figure_Images.tar.gz | fe395dbc05c5408e806b6271873a21a9cef343c940126fed682233b21a793d6e62b3d33a4ac2a77bf5789c514187a595798e823f1f1fd7f71360fdea6e6500e8 |
| Pole_Figure_Images_v2.tar.gz | f272af212fa634d702129721de4b5bbb62a89a0cf872f4230df3ad809cf5c7c6c075847d93efe9c1866c2a832893602b9486937679bb0a1d5987df26f9766799 |
v2.1.0
- BUG: Fix bugs inside of the _calcRodNearestOrigin function.
Earlier commit from Nov 2025 changed the RodSym values to 4 component values but
that function still assumed it was a 3 component Rodrigues Orientation.
-
Update some static constants to constexpr
-
COMP: Remove legacy float[3][3] for MatSymOp functions
-
ENH: Update more functions, static constants, formatting and other bits
v2.0.0
Rewrote the entire Orientation Transformation set of classes.
Updated the Matrix3x3 and Matrix3x1 classes to be more compatible with the new Orientation classes.
Updated unit testing to use Catch2
v1.0.40
- BUG: Fixes issues when computing the FZ Quaternion from an input quaternion. The code is taken directly from the EMsoftOO code base.
- API: Expand the GetFZQuat to each of the subclasses.
- API: Expand Quaternion API to include functions to create a positive Quaternion
- Fix issue in H5AngVolumeReader when not reading Euler Angles from a file
- Added API to all LaueOps classes to return an orientation in the fundamental zone
- GIT: Update .gitignore with CMakeUserPresets.json
- Update Copyright Years
v1.0.39
v1.0.38
Fixes compile issues introduced by Xcode 16.3