| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| cml-1_0_2.zip | 2010-01-09 | 174.4 kB | |
| cml-1_0_2.exe | 2010-01-09 | 246.0 kB | |
| cml-1_0_1.exe | 2009-07-25 | 245.9 kB | |
| cml-1_0_1.zip | 2009-07-25 | 174.4 kB | |
| cml-1_0_0.zip | 2008-04-05 | 188.2 kB | |
| cml-1_0_0.exe | 2008-04-05 | 243.6 kB | |
| CML-1.0.zip | 2008-03-27 | 180.7 kB | |
| CML-1.0.exe | 2008-03-27 | 238.0 kB | |
| Totals: 8 Items | 1.7 MB | 1 | |
Configurable Math Library
Changelog
CML version 1.0.3 20110614 (Rev 264)
* Fixed VS 'loss of data' warning in cml/mathlib/coord_conversion.h and
cml/util.h.
* Added missing normalize() methods to Matrix{Row,Col}Op.
* Fixed signed-unsigned warnings in lines 169-170 of
cml/matrix/matrix_comparison.h.
* Fixed a number of MSVC /W4 warnings (examples/simple.cpp compiles without
warnings on 2005).
* Fixed a warning due to assigning an integer to a float in
matrix_orthographic. Also changed similar code in matrix_perspective to use
value_type() instead of static_cast<> to perform the cast to the proper type.
* Added cml::transform_point_4D to transform a 3D point by a 4D homogeneous
matrix.
* Modified the vector stream output (operator<<) to avoid printing a leading
space to the stream.
* Removed the Real template parameter from the cml::matrix_to_euler() function
returning a vector<>. The vector coefficient type is now taken from the
matrix coefficient type.
* Added the "subvector_type" typedef to dynamic and external vectors.
* Added vector<>::subvector() to both dynamic and external vectors, which is
projects a vector to a cardinal plane and returns the resulting vector of one
lower dimension.
* Added the "supervector_type" to fixed vectors. This is mainly for
convenience in creating homogeneous points and vectors.
* Warning fix: added static casts in matrix_perspective and matrix_look_at.
* Removed trailing commas from 'axis order' enums.
* Added inclusion of matrix_comparison.h to cml/matrix.h
CML version 1.0.2 20100108 (Rev 246)
* Added missing <vector> include for std::vector<>.
* Added missing semicolons in cml/core/dynamic_2D.h.
* Added a copy constructor and the copy() method to dynamic_1D and
dynamic_2D.
* Replaced the std::vector<>-based implementations of dynamic_1D and
dynamic_2D with custom implementations that use std::allocator<> directly
to manage the internal arrays. This is to help avoid a problem with
sending a std::vector<> from an executable built with debugging to a DLL
built without debugging on Windows. In particular, the memory layout of
the std::vector<> class is different between debug and release builds,
which causes std::vector<>::size() to return a (usually bad) value to the
DLL that differs from that returned to the executable.
* Removed the identity_transform() initialization step in
matrix_rotation_euler_derivatives, and added a matrix_to_euler convenience
function that returns a 3D vector of the Euler angles.
* Modified the quaternion print code to output coefficients in the right order.
* Changed the include file order in quaterion.h so that quaternion_print.h
has the order enum defined.
* Removed old scalar promotion code (no longer used), and shortened the long
select_switch<> template argument list (also no longer used).
* Fixed compilation errors when using const element types in external<>
vectors and matrices.
* Minor changes to the Doxygen configuration (output now to cml1-doc, no
CHM file, and PNG images).
* Removed extra comments from the vector timing tests (for testing the
assembly code generated by CML2).
CML version 1.0.1 20090717
* Minor documentation updates, and a fix for "warning C4305: 'return'
: truncation from 'double' to 'float'". Added an "example" function to
simple.cpp to test the change.
* Added the "coordinate_type" typedef to get access to the vector's Element
(coordinate) type using a more descriptive name than "value_type".
* Added index_of_max() and index_of_max_abs() for 2 arguments.
* Added matrix<>::set_row() and matrix<>::get_row().
* Fixed a bug in MatrixAssignmentUnroller that caused matrix<>::zero() to
resize a matrix to 1x1.
* Fixed MatrixPromoteHelper<> to eliminate shadowed template parameter.
Also modified ScalarPromote<> to avoid GCC warnings.
CML version 1.0 20090314
* Replaced ScalarPromote<> with more robust code from
http://ubiety.uwaterloo.ca/~tveldhui/papers/techniques/techniques01.html
* Fixed a bug in MatrixPromote<> due to a dependence upon broken behavior
of the previous ScalarPromote<> code.
CML version 1.0 20080326
* Macro fixes for Visual Studio 8 and 9.
* Added support for quaternion log() and exp().
* Fixed quaternion slerp() to work transparently with quaternion expressions.
* Fixed quaternion_rotation_difference() to work transparently with
quaternion expressions.
* Fixed line endings and made sure files have trailing newlines.
* Added inverse determinant optimization.
* Added integer-based vector and matrix types.
* Removed support for quaternion division.
* Fixed header include order for GCC4.
* Replaced switch-case in QuaternionMulOp::operator[] with a temporary
computed in the constructor.
* Changed multiplication mechanism to remove extra multiplications by
'scale' constant
* Added six 'matrix decomposition' functions
* Added "cml::" prefix to a number of free-function calls from vector<> and
matrix<> methods that VS8 incorrectly tries to match with methods in
those classes having the same names as (but different arguments from) the
free functions.
* Added 'tolerance' argument to quaternion_to_euler() function
* Added PLANE_ prefix to enums to avoid symbol conflict with Windows macros
LEFT and RIGHT
* Fixed bug in ScalarPromote code; now implements the C promotion rules
(see test/integer_vectors.cpp).