|
|
|
Release Notes
ObjexxFCL 4.2.0
- Fortran intrinsic function coverage extended and improved
- Command line intrinsic function module added
- Time_Date module renamed time
ObjexxFCL 4.1.0
- Array1D std::vector-like API extended and performance enhanced
- CArrayA aligned C-style array wrapper class template added
- New array allocation system with improved alignment support
- Alignment and vectorization support headers added
- Array initialization support improved
ObjexxFCL 4.0.0
- New formatted i/o system to support more accurate and robust Fortran-to-C++ i/o conversions
- Array sections (slices)
- "Member" array support: Allows members of objects in arrays to be treated as arrays themselves
- More Fortran 90+ array intrinsics
- More and faster array operations
- Assumed-size array parameter changed from star to _
- Optional and Required argument class templates for Fortran style OPTIONAL arguments
- Reference class template providing Fortran POINTER semantics
- ArraySection renamed ArrayTail
- Renamed format.* files to fmt.*
- Renamed FArray* classes to Array*
- Loop control helper functions added to floops for improved mapping of DO to for loops
- Fast 2 and 3 element vectors
- 6D array bug fixes
- Streamlined (no automatic dimensioning) variant of the ObjexxFCL added for max performance applications
- Row-major array variant of the ObjexxFCL added for applications that want to use the more typical C++ array layout
- Aligned array memory allocation added for improved vectorization and cache efficiency
ObjexxFCL 3.0.1
- Minor source reorganization and tweaks
ObjexxFCL 3.0.0
- Arrays renamed for clarity (breaking change but could be typedef'd away)
- 6D Arrays added
- CPArray renamed CArrayP (breaking change but could be typedef'd away)
- Namespace scope friend function declarations added to avoid dependence on friend injection or ADL lookup mechanisms
- Minor source reorganization and tweaks
- Migration tool ObjexxFCL.2-3.py to adjust user code for renamed types
ObjexxFCL 2.7.0
- Optional runtime proxy const-correctness checks
- Rank 4 and 5 KeyArrays added
- New date function
- Minor source reorganization and tweaks
- Improved development and build systems
ObjexxFCL 2.6.3
- Merged formatted i/o system into format.hh/.cc
- Move internal namespace files into main source directory
- Put bit functions in Fmath into bit namespace to avoid collisions with new C++0x functors
- Minor additions and tweaks to Fstring and string_functions
- Work-around for GCC 4.3 friend lookup bug
- Portable build and unit testing drivers
- Minor source reorganization and tweaks
ObjexxFCL 2.6.2
- CArrayP added: CArray with proxy capability
- Generator operators added to CArray
- Minor source reorganization and tweaks
ObjexxFCL 2.6.1
- Faster Array redimensioning
- New fast swap functions for IndexRange and Dimension classes
- Minor source reorganization and tweaks
ObjexxFCL 2.6.0
- Cstring added
- char.functions renamed (was char_functions)
- string.functions renamed (was string_functions) and extended
- Fstring functions extended and made consistent with string.functions
- trim_ws and trimmed_ws in Fstring and string.functions changed to remove only trailing whitespace: use the strip_whitespace and stripped_whitespace functions for removing whitespace from either or both string tails
- array.iterator added
- Minor source reorganization and tweaks
ObjexxFCL 2.5.3
- KeyArrays added
- Forward declaration headers added and included in class declarations
- Fmath: fix for 4-argument template min/max function to return by reference
- Additional assertions added
- Minor source tweaks
ObjexxFCL 2.5.2
- Array size reporting support added via OBJEXXFCL_ARRAY_SIZE_REPORT macro
- F formatting in formatted.o changed to show more precision in some cases
- Container typedefs for Container_size added
ObjexxFCL 2.5.1
- IBM C++ compatibility work-arounds
- CamelCase style typedef names added
- Minor source reorganization and file renaming
ObjexxFCL 2.5.0
- CArray added: memory-managed C-style array wrapper
- ChunkVector: member functions added and stream output moved to ChunkVector_io.hh
- ubyte added: unsigned byte
- Headers renamed to .hh extension
- Class forward declarations and typedefs put in .fwd.hh files
- Code format updated and doxygen tags added
ObjexxFCL 2.4.1
- Array:
- Assignment of differently dimensioned array supported to facilitate storing STL containers of Arrays
- Cross product functions added for Array1D
- New Array2D functions:
- identity: Named identity matrix constructor
- to_identity: Converts to identity matrix
- diag: Named diagonal matrix constructor
- to_diag: Converts to a diagonal matrix
- operator*= and right_multiply_by: Right-multiply by an Array
- transposed: Transposed copy of the array
ObjexxFCL 2.4.0
- Array:
- Data-preserving redimension functions added for real Arrays
- swap functions added for real Arrays
- Initializer set and clear functions added for real Arrays
- Copy constructor template variants made explicit to prevent unintended copying
- Generators added for real Arrays: A + B, A - B, A + 1, -A, etc.
- STL-like typdefs added: reference, pointer, etc.
- ChunkVector reimplemented for performance and dynamic growth:
- Implemented as std::vector< Chunk >
- Chunk is now an efficient growable array with controllable capacity
- Constructor that doesn't initialize built-in C++ value types is available for performance
- std::vector interoperation
- push_back, pop_back, resize, shrink, and swap operations support efficient dynamic growth
- STL-like typdefs added: reference, pointer, etc.
- Exponent argument must be specified as an unsigned value or ChunkExponent( x ) to disambiguate some ChunkVector function calls
- Dimension expression functions added: min, max, square, cube, and pow
ObjexxFCL 2.3.4
- Refined/extended string_of and Fstring_of functions
- Added Array assign functions that redimension if necessary and assign another array's values
- Microsoft® Visual C++ 7.1 compatibility added
ObjexxFCL 2.3.3
- Windows and Linux 64-bit platform compatibility and large array support
- Formatted output single-space support for std::complex added
ObjexxFCL 2.3.2
- ChunkVector class template for very large vector support in a possibly memory fragmented application space added
- Real Array copy + IndexRange constructors added
- rvalue_cast template function added
ObjexxFCL 2.3.1
- Eliminated convenience header inclusions for finer-grained inclusion control and faster builds
- Added ArrayN.all.h convenience wrapper headers that include all headers for a Arrays of rank N
- Dimension.h insulated from DimensionExpression hierarchy headers for faster builds: DimensionExpressions.h must now be included by application code that creates Dimension expressions
- Moved ObserverMulti std::set into SetWrapper class to allow forward declarations and faster builds
- Minor refinements
ObjexxFCL 2.3.0
- Automatic dynamic array sizing via Dimension objects
- Proxy arrays that track their source arrays through (re)sizing
- Argument/proxy array attach/detach and default construction
- Array size overflow detection in debug builds
- Optional default array initialization
- Assumed-size array parameter changed from '*' to star to avoid char--int ambiguity
- Formatted input slice function renamed to bite to avoid ambiguity with std::slice
- Numeric conversion functions to/from std::string and Fstring
- GCC 3.3 and 3.4 support on Linux, Mac OS X, Win32, ...
- Intel C++ 8.0 and 8.1 support on Linux & Win32
ObjexxFCL 2.2.4
- Migrate Array assignment operators to concrete classes to avoid ambiguity/visibility issues
ObjexxFCL 2.2.3
- GCC 3.4 support
- ObjexxFCL_Platform.h removed
- Array_Section renamed ArraySection
- Minor refinements
ObjexxFCL 2.2.2
- Fixed resizing operation order bug introduced in 2.2.0
- Minor refinements
ObjexxFCL 2.2.1
- equal_dimensions Array functions added
- Minor refinements
ObjexxFCL 2.2.0
- Arrays of up to five dimensions
- Faster subscript-based and linear array accessors
- "Argument" arrays can be passed any arrays or array elements
- Two array element passing modes
- Assumed-size array arguments
- Fast linear array indexing
- Array and string constructor initializer function support
- Smart traits-based array stream formatted output
- Additional Fortran 77 and 95 compatible intrinsic functions
- Stream-based Fortran-like formatted i/o
- Project-specific namespace control and typedef naming
See the Users and Developers guides for complete documentation.
|
|
|
|