Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/CHANGELOG.asciidoc
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ and {pull}47050[#47050].)
tree which is trained for both regression and classification. (See {ml-pull}811[#811].)
* Emit `prediction_probability` field alongside prediction field in ml results.
(See {ml-pull}818[#818].)
* Reduce memory usage of {ml} native processes on Windows. (See {ml-pull}844[#844].)

== {es} version 7.5.0

Expand Down
4 changes: 2 additions & 2 deletions include/maths/CBasicStatistics.h
Original file line number Diff line number Diff line change
Expand Up @@ -1145,7 +1145,7 @@ class MATHS_EXPORT CBasicStatistics {
//! \tparam LESS The comparison function object type used to test
//! if one object of type T is less than another.
template<typename T, std::size_t N, typename LESS = std::less<T>>
class COrderStatisticsStack
class EMPTY_BASE_OPT COrderStatisticsStack
: public COrderStatisticsImpl<T, std::array<T, N>, LESS>,
private boost::addable<COrderStatisticsStack<T, N, LESS>> {

Expand Down Expand Up @@ -1238,7 +1238,7 @@ class MATHS_EXPORT CBasicStatistics {
//! \tparam LESS The comparison function object type used to test
//! if one object of type T is less than another.
template<typename T, typename LESS = std::less<T>>
class COrderStatisticsHeap
class EMPTY_BASE_OPT COrderStatisticsHeap
: public COrderStatisticsImpl<T, std::vector<T>, LESS>,
private boost::addable<COrderStatisticsHeap<T, LESS>> {
private:
Expand Down
5 changes: 3 additions & 2 deletions include/maths/CTimeSeriesDecomposition.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,9 @@ struct STimeSeriesDecompositionRestoreParams;
//!
//! By default this assumes the data has one day and one week
//! periodicity, i.e. \f${ T_i } = { 86400, 604800 }\f$.
class MATHS_EXPORT CTimeSeriesDecomposition : public CTimeSeriesDecompositionInterface,
private CTimeSeriesDecompositionDetail {
class MATHS_EXPORT EMPTY_BASE_OPT CTimeSeriesDecomposition
: public CTimeSeriesDecompositionInterface,
private CTimeSeriesDecompositionDetail {
public:
//! \param[in] decayRate The rate at which information is lost.
//! \param[in] bucketLength The data bucketing length.
Expand Down
4 changes: 4 additions & 0 deletions include/maths/ImportExport.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,14 @@
#define MATHS_EXPORT __declspec(dllimport)
#endif

//! See https://devblogs.microsoft.com/cppblog/optimizing-the-layout-of-empty-base-classes-in-vs2015-update-2-3/
#define EMPTY_BASE_OPT __declspec(empty_bases)

#else

// Empty string on Unix
#define MATHS_EXPORT
#define EMPTY_BASE_OPT

#endif

Expand Down
2 changes: 1 addition & 1 deletion include/maths/ProbabilityAggregators.h
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ std::ostream& operator<<(std::ostream& o,
//! joint probabilities, which should respect the error in the bounds.
//! For example, two probabilities should be treated as equal if the
//! intervals defined by their upper and lower bounds intersect.
class MATHS_EXPORT CLogJointProbabilityOfLessLikelySamples
class MATHS_EXPORT EMPTY_BASE_OPT CLogJointProbabilityOfLessLikelySamples
: protected CJointProbabilityOfLessLikelySamples,
private boost::addable<CLogJointProbabilityOfLessLikelySamples> {
public:
Expand Down
9 changes: 5 additions & 4 deletions lib/maths/CBjkstUniqueValues.cc
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,11 @@ using TUInt8UInt8Pr = std::pair<uint8_t, uint8_t>;
//! |(g(x) >> 8) % 256| g(x) % 256 | zeros(x) |
//! \endcode
// clang-format off
class CHashIterator : public std::iterator<std::random_access_iterator_tag, uint16_t>,
private boost::less_than_comparable<CHashIterator,
boost::addable<CHashIterator, ptrdiff_t,
boost::subtractable<CHashIterator, ptrdiff_t>> > {
class EMPTY_BASE_OPT CHashIterator
: public std::iterator<std::random_access_iterator_tag, uint16_t>,
private boost::less_than_comparable<CHashIterator,
boost::addable<CHashIterator, ptrdiff_t,
boost::subtractable<CHashIterator, ptrdiff_t>>> {
// clang-format on
public:
//! The STL that comes with g++ requires a default constructor - this
Expand Down